Consultor Eletrônico



Kbase P92881: Changing a lookup with del or backspace or with mouse paste/cut/delete do not fire lookup.p/valueCha
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/01/2005
Status: Unverified

SYMPTOM(s):

Changing manually the SCREEN-VALUE of a lookup with delete or backspace key or with a mouse operation (paste/cut/delete)

lookup.p/valueChanged is not fired

toolbar remains in data not modified mode

A lookup relies on ANY-PRINTABLE instead of VALUE-CHANGED

CAUSE:

In adm2/lookup/initializeLookup, the trigger ANY-PRINTABLE is used to run the valueChanged event procedure. The fact that the content of a lookup FILL-IN has been changed manually is trapped in leaveLookup that fires on the 4GL LEAVE trigger.

As a consequence, the del or backspace key or a deletion with a mouse operation (paste/cut/delete) do not fire data modified, in which case a leave event (like tab out) has to be fired to make the viewer aware that the lookup has changed.

FIX:

Modify the code of adm2/lookup/initializeLookup to use the VALUE-CHANGED event (valid for FILL-IN's since Version 9) instead of ANY-PRINTABLE.

The VALUE-CHANGED event is equivalent to ANY-PRINTABLE + DELETE-CHARACTER + BACKSPACE + ChangeByMouseOperation, so this solution will cover the ANY-PRINTABLE as before, and the other cases (DELETE-CHARACTER + BACKSPACE + ChangeByMouseOperation) that should not introduce any regression.