The declarative DIALOG block defines an interactive instruction that can be used by a parent DIALOG, or as parallel dialog.
[ PRIVATE | PUBLIC ] DIALOG dialog-name () [ define-block ] { menu-block | record-input-block | construct-block | display-array-block | input-array-block } END DIALOG
where define-block is a local variable declaration block.
MENU [ BEFORE MENU menu-statement [...] ] menu-option [...] END MENU
{ COMMAND option-name [option-comment] [ HELP help-number ] menu-statement [...] | COMMAND KEY ( key-name ) option-name [option-comment] [ HELP help-number ] menu-statement [...] | COMMAND KEY ( key-name ) menu-statement [...] | ON ACTION action-name [ ATTRIBUTES ( action-attributes-menu ) ] menu-statement [...] }
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | CONTEXTMENU = { YES | NO | AUTO } | DISCLOSUREINDICATOR [,...] }
where menu-statement is:
{ statement | NEXT OPTION option | SHOW OPTION { ALL | option [,...] } | HIDE OPTION { ALL | option [,...] } }
INPUT { BY NAME { variable | record.* } [,...] | variable | record.* } [,...] FROM field-list } [ ATTRIBUTES ( 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 ] [ ATTRIBUTES ( action-attributes-input ) ] | ON KEY ( key-name [,...] )} dialog-statement [...]
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | VALIDATE = NO | CONTEXTMENU = { YES | NO | AUTO } [,...] }
CONSTRUCT { BY NAME variable ON column-list | variable ON column-list FROM field-list } [ ATTRIBUTES ( 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 [,...] | AFTER FIELD field-spec [,...] | AFTER CONSTRUCT | ON ACTION action-name [INFIELD field-spec] [ ATTRIBUTES ( action-attributes-construct ) ] | ON KEY ( key-name [,...] )} dialog-statement [...]
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | CONTEXTMENU = { YES | NO | AUTO } [,...] }
DISPLAY ARRAY array TO screen-array.* [ ATTRIBUTES ( display-array-control-attribute [,...] ) ] [ display-array-control-block [...] ] END DISPLAY
{ HELP = help-number | COUNT = row-count | KEEP CURRENT ROW = [ = boolean ] | DETAILACTION = action-name | DOUBLECLICK = action-name | ACCESSORYTYPE = { DETAIBUTTON | DISCLOSUREINDICATOR | CHECKMARK } }
{ BEFORE DISPLAY | BEFORE ROW | AFTER ROW | AFTER DISPLAY | ON ACTION action-name [ ATTRIBUTES ( action-attributes-display-array ) ] | ON KEY ( key-name [,...] ) | ON FILL BUFFER | ON SELECTION CHANGE | ON SORT | ON APPEND [ ATTRIBUTES ( action-attributes-listmod-triggers ) ] | ON INSERT [ ATTRIBUTES ( action-attributes-listmod-triggers ) ] | ON UPDATE [ ATTRIBUTES ( action-attributes-listmod-triggers ) ] | ON DELETE [ ATTRIBUTES ( action-attributes-listmod-triggers ) ] | 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 [...]
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | CONTEXTMENU = { YES | NO | AUTO } | ROWBOUND [,...] }
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | CONTEXTMENU = { YES | NO | AUTO } [,...] }
INPUT ARRAY array FROM screen-array.* [ ATTRIBUTES ( 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 | ON SORT | AFTER ROW | BEFORE DELETE | AFTER DELETE | BEFORE INSERT | AFTER INSERT | AFTER INPUT | ON ACTION action-name [INFIELD field-spec] [ ATTRIBUTES ( action-attributes-input-array ) ] | ON KEY ( key-name [,...] ) } dialog-statement [...]
{ TEXT = string | COMMENT = string | IMAGE = string | ACCELERATOR = string | DEFAULTVIEW = { YES | NO | AUTO } | VALIDATE = NO | CONTEXTMENU = { YES | NO | AUTO } | ROWBOUND [,...] }
{ 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 } [,...]