Binding action views to action handlers
How are action views of the forms bound to action handlers in the program code?
Action views (such as buttons) are bound to action handlers by the name
attribute. Action handlers are defined in interactive instructions with an ON
ACTION clause or COMMAND / ON KEY
clauses.
ATTRIBUTES section of the form, a button may be
defined as follows:BUTTON b1: show_help, TEXT="Show Help";show_help" action
name:ON ACTION show_help
CALL ShowHelp()TOOLBAR tb
ITEM show_help ( TEXT="Show Help" )
...BUTTONEDIT buttons (using the ACTION attribute to define the
action name):BUTTONEDIT f1 = customer.cust_city, ACTION = open_city_list;The COMMAND / ON KEY clauses are typically used to
write text mode programs. Such clauses define the name of the action and the decoration
label. It is recommended that you use ON ACTION clauses instead,
because they identify user actions with an abstract name. However, if required, you can
use a COMMAND clause in a non-menu dialog to include the corresponding
action view in the focusable form items.
ON ACTION action-name clause, the name of the action must
be a valid identifier, preferably written in lowercase letters. In the abstract user
interface tree (where the action views are defined), action names are case sensitive (as
they are standard DOM attribute values). However, identifiers are not case sensitive in
the language. The fglcomp compiler always converts the action
identifiers of ON ACTION clauses to
lowercase:ON ACTION PrintRecord -- will be compiled as "printrecord"To avoid confusion, always use lowercase names for action names (for example,
print_record instead of PrintRecord).