Which form item has the focus?
Identify what element of the current form has the focus.
Dialog control blocks such as BEFORE INPUT, BEFORE DISPLAY,
BEFORE ROW, BEFORE FIELD, AFTER FIELD,
AFTER ROW, AFTER DISPLAY, AFTER INPUT are
executed when the focus enters or leaves a field or a group of fields controlled by a sub-dialog. By
design, these control blocks implicitely identify which form element has the focus: When code
executing in a BEFORE FIELD cust_id block, we are in the cust_id
field.
Sometimes, you need to identify which form element has currently the focus, in a context
different for a control block such as BEFORE FIELD, especially with a
DIALOG block, which controls several parts of a form. For example, when several
lists are controlled by multiple DISPLAY ARRAY sub-dialogs, you may need to know
which is the current list in the context of a dialog-level ON ACTION block.
To get the name of the current form item, use the DIALOG.getCurrentItem() method. This
method is the replacement of the former fgl_dialog_getfieldname() built-in function.
It has been extended to return identifiers for fields, lists, or actions identifiers.
DIALOG ATTRIBUTES(UNBUFFERED)
DISPLAY ARRAY p_orders TO orders.*
...
END DISPLAY
DISPLAY ARRAY p_items TO items.*
...
END DISPLAY
...
IF DIALOG.getCurrentItem() == "items" THEN
...
END IF
...
END DIALOG