When user enter in Edit-In-Place mode and then clicks on another row without pressing arrows, tab or enter - how can I trap this event?
First, I need to update (recalculate) some browse tmp fields, and then to update some other tables but Clarion just saves (without re-calculation) the record and I can’t trap when this happens.
I see this comment in abeip.clw:
EIPManager.TakeNewSelection PROCEDURE ! Must be overridden to handle out-of-row clicks
Look at the TakeAcceptAll or TakeCompleted method of the EIP Manager. The TakeComplete method is where the actual save happens. Also, check out TakeFocusLoss for specifically the user clicking else where than the edited row.
I see that TakeFocusLoss is called in 4 situations:
- EVENT:CloseDown event
- EVENT:CloseWindow event
- EVENT:Sized event
- a user clicked somewhere out of list control
Do you want to recalculate everything in these cases?
UPD:
TakeFocusLoss also called from BrowseEIPManager.TakeNewSelection. So my thought is use an embed in TakeNewSelection somewhere after TakeFocusLoss call.
yes, it should recalculate all and then save record