Control Exited/Changed-Inline and the OK button and users of the MOUSE!



Legendary Poster
Hi folks

I've come across a weird one today, bare with me. It relates to a difference of FC navigation in a headerless detail screen. Some like using a mouse, others like to TAB like normal human beings :)

I have 2 Form Control header fields, 1) ITM and 2) MCU that a user must populate both to then let my code go off and get values for other FCs on the screen to save data entry. (controlled in Control Exited/Changed-Inline of each FC)
We have others fields to like 3) DESC and 4) CITM

Tab sequence
1 > 2 >
3 > 4

Now then......The ITM they must either enter manually or use a VA to get the ITM value but, the MCU is different. I placed code in Dialog Is Initialised to go off and get the users default MCU from F40095 for them.

So some users will TAB from the 1) ITM FC through to the 2) MCU field and tab out to carry on to 3). Others are only filling in the ITM then using the mouse to click into 3) DESC or the other fields as the MCU is pre-populated for them.

What I'm finding is when a user clicks OK to save the data for the users who TABBED, everything is fine, values are as entered or as pre-populated from Control Exited/Changed-Inline and they are happy, but the users who click....that's a different story :)

The users who use the mouse to navigate the screen don't ever execute the Control Exited/Changed-Inline for the 2) MCU field, so when they click OK it's executed THEN. This then wipes what they may have entered or changed I got for them from my pre-populated values.

I know E1 executes this Control Exited/Changed-Inline event for ALL FCs, but this condition of the exit must be 'latched' inside the E1 form engine somehow as if a user does TAB through the control it never executes this again and it all works.

Is there a way around this? Maybe if I moved my pre-population code to Post Dialog Is Initialised it may work?
Anyone seen this before?

Damn those mouse users
Have been years since i have worked on screens. Do you have code in Control is Changed-Async? This i think should take care when code changes it thru assignments.


No it's in the inline.

Issue is, if a User doesn't exit through that control then it's saved by the form engine and executed when the user clicks OK. And that's the issue. So I've forced this in Post Dialog Is Initialised by setting focus on MCU, assigning a value to MCU and then setting focus on the other ITM FC.
This seems to work and force the event to be executed