Structure of a procedural DIALOG block
A procedural DIALOG instruction is made up of several sub-dialogs,
   plus global control blocks such as BEFORE DIALOG and action handlers such as
    ON ACTION or COMMAND.
Sub-dialogs can be defined inside the DIALOG instruction, or can be declared
 externally in another module and attached to the current DIALOG block with the
 SUBDIALOG clause. A dialog defined in the scope of a function is know as a
 procedural dialog block, while a dialog declared in the scope of a module is named
 a declarative dialog block.
The sub-dialogs bind program variables to form fields and define the type of interaction that will take place for the data model (simple input, list input or query). The sub-dialogs implement individual control blocks which let you control the behavior of the interactive instruction. Sub-dialogs can also hold action handlers, which will define local sub-dialog actions.
The DIALOG procedural instruction can hold the following type of
         sub-dialogs:
- Simple record input with the 
INPUTsub-dialog block. - Query by example input with the 
CONSTRUCTsub-dialog block. - Read-only record list navigation with the 
DISPLAY ARRAYsub-dialog block. - Editable record list handling with the 
INPUT ARRAYsub-dialog block. - A 
SUBDIALOGclause referencing a declarative sub-dialog by name.