Similarly to the ON INSERT control block, the ON APPEND trigger can be used to enable row creation during a DISPLAY ARRAY dialog. If this block is defined, the dialog will automatically create the append action. This action can be decorated, enabled and disabled as a regular action.
If the dialog defines an ON ACTION append interaction block and the ON APPEND block is used, the compiler will stop with error -8408.
When the user fires the append action, the dialog first execute the user code of the AFTER ROW block if defined. Then the dialog moves to the end of the list, and creates a new row after the last existing row. After creating the row, the dialog executes the user code of the ON APPEND block.
DISPLAY ARRAY arr TO sr.* ... ON APPEND INPUT arr[arr_curr()].* FROM sr[scr_line()].* ; ...
Pay attention to the semicolon ending the INPUT instruction, which is usually needed here to solve a language grammar conflict when nested dialog instructions are implemented.
After the user code is executed, the dialog gets the control back and processes the new row as follows:
The DISPLAY ARRAY dialog always resets INT_FLAG to FALSE and STATUS to zero before executing the user code of the ON APPEND block.
The append action is disabled if the maximum number of rows is reached.
ON APPEND ATTRIBUTES(TEXT=%"custlist.delete", IMAGE="listdel")