This section presents a simple technique for preventing the WHEN-VALIDATE-ITEM trigger from firing while querying when such a trigger is defined for control items. This technique is useful when non-base items are part of a record and validation of these items is to be suppressed at the time of querying the records.
For a base table item, a WHEN-VALIDATE-ITEM will not fire during query mode. That's why you need a POST-QUERY trigger to populate any look-up items in the block that are based on the base table items.
For a control item, WHEN-VALIDATE-ITEM will fire when it is populated by means of a POST-QUERY. To prevent this, the following technique can be used:
WHEN-VALIDATE-ITEM IF :SYSTEM.MODE != NORMAL THEN RETURN; END IF;
Alternatively, you can force the item to be valid by setting the ITEM_IS_VALID property to TRUE in the POST_QUERY :
POST-QUERY SET_ITEM_PROPERTY(item_id, ITEM_IS_VALID, PROPERTY_TRUE);
Advanced GUI Development: Developing Beyond GUI
Advanced Forms Programming
Object-oriented Methods in Forms
Intelligence in Forms
Additional Interesting Techniques
Working with Trees
Oracle 8 and 8i Features in Forms Developer