User interface / Multiple dialogs |
The DIALOG block is an interactive instruction that executes several sub-dialogs simultaneously.
DIALOG [ ATTRIBUTE ( dialog-control-attribute [,...] ) ] { record-input-block | construct-block | display-array-block | input-array-block | SUBDIALOG dialog-name } [...] [ dialog-control-block [...] ] END DIALOG
{ FIELD ORDER FORM | UNBUFFERED [ = boolean ] }where dialog-name in the SUBDIALOG clause is the name of a sub-dialog defined as declarative dialog block outside the scope of the current function:
DIALOG dialog-name () [ DEFINE variable-definition [,...] ] { record-input-block | construct-block | display-array-block | input-array-block } END DIALOGwhere record-input-block is:
{ INPUT BY NAME { variable | record.* } [,...] | INPUT { variable | record.* } [,...] FROM field-list } [ ATTRIBUTE ( input-control-attribute [,...] ) ] [ input-control-block [...] ] END INPUTwhere input-control-attribute is:
{ HELP = help-number | NAME = "sub-dialog-name" | WITHOUT DEFAULTS [ = boolean ] }where input-control-block is one of:
{ BEFORE INPUT | BEFORE FIELD field-spec [,...] | ON CHANGE field-spec [,...] | AFTER FIELD field-spec [,...] | AFTER INPUT | ON ACTION action-name [INFIELD field-spec] | ON KEY ( key-name [,...] )} dialog-statement [...]
{ CONSTRUCT BY NAME variable ON column-list | CONSTRUCT variable ON column-list FROM field-list } [ ATTRIBUTE ( construct-control-attribute [,...] ) ] [ construct-control-block [...] ] END CONSTRUCT
{ HELP = help-number | NAME = "sub-dialog-name" }where construct-control-block is one of:
{ BEFORE CONSTRUCT | BEFORE FIELD field-spec [,...] | ON CHANGE field-spec [,...] | AFTER FIELD field-spec [,...] | AFTER CONSTRUCT | ON ACTION action-name [INFIELD field-spec] | ON KEY ( key-name [,...] )} dialog-statement [...]
DISPLAY ARRAY array TO screen-array.* [ ATTRIBUTE ( display-array-control-attribute [,...] ) ] [ display-array-control-block [...] ] END DISPLAY
{ HELP = help-number | COUNT = row-count | KEEP CURRENT ROW = [ = boolean ] }where display-array-control-block is one of:
{ BEFORE DISPLAY | BEFORE ROW | AFTER ROW | AFTER DISPLAY | ON ACTION action-name | ON KEY ( key-name [,...] ) | ON FILL BUFFER | ON APPEND | ON INSERT | ON UPDATE | ON DELETE | ON EXPAND ( row-index ) | ON COLLAPSE ( row-index ) | ON DRAG_START ( dnd-object ) | ON DRAG_FINISH ( dnd-object ) | ON DRAG_ENTER( dnd-object ) | ON DRAG_OVER ( dnd-object ) | ON DROP ( dnd-object ) } dialog-statement [...]
INPUT ARRAY array FROM screen-array.* [ ATTRIBUTE ( input-array-control-attribute [,...] ) ] [ input-array-control-block [...] ] END INPUT
{ APPEND ROW [ = boolean ] | AUTO APPEND [ = boolean ] | COUNT = row-count | DELETE ROW [ = boolean ] | HELP = help-number | INSERT ROW [ = boolean ] | KEEP CURRENT ROW [ = boolean ] | MAXCOUNT = max-row-count | WITHOUT DEFAULTS [ = boolean ] }where input-array-control-block is one of:
{ BEFORE INPUT | BEFORE ROW | BEFORE FIELD [,...] | ON CHANGE field-spec [,...] | AFTER FIELD field-spec [,...] | ON ROW CHANGE | AFTER ROW | BEFORE DELETE | AFTER DELETE | BEFORE INSERT | AFTER INSERT | AFTER INPUT | ON ACTION action-name [INFIELD field-spec] | ON KEY ( key-name [,...] ) } dialog-statement [...]
{ BEFORE DIALOG | ON ACTION action-name | ON KEY ( key-name [,...] ) | ON IDLE idle-seconds | COMMAND option-name [ option-comment ] [ HELP help-number ] | COMMAND KEY ( key-name [,...] ) option-name [ option-comment ] [ HELP help-number ] | AFTER DIALOG } dialog-statement [...]
{ statement | ACCEPT DIALOG | CONTINUE DIALOG | EXIT DIALOG | NEXT FIELD { CURRENT | NEXT | PREVIOUS | field-spec } }
{ field-name | table-name.* | table-name.field-name | screen-array[line].* | screen-array[line].field-name | screen-record.* | screen-record.field-name } [,...]
{ field-name | table-name.field-name | screen-array.field-name | screen-record.field-name }
{ column-name | table-name.* | table-name.column-name } [,...]