| User interface / Query by example | |
The CONSTRUCT instruction provides database query by example, producing a WHERE condition for SELECT.
CONSTRUCT BY NAME variable ON column-list
    [ ATTRIBUTES ( { display-attribute
                     | control-attribute }
                     [,...] ) ]
    [ HELP help-number ]
[ dialog-control-block
  [...] 
END CONSTRUCT ]
 CONSTRUCT variable ON column-list FROM field-list
    [ ATTRIBUTES ( { display-attribute
                     | control-attribute
                     } [,...] ) ]
    [ HELP help-number ]
[ dialog-control-block
   [...] 
END CONSTRUCT ]
{ column-name
| table-name.*
|  table-name. column-name
} [,...]
{ field-name
| table-name.*
| table-name.field-name
| screen-array[line].*
| screen-array[line].field-name
| screen-record.*
| screen-record.field-name
} [,...]
{ BEFORE CONSTRUCT
| AFTER CONSTRUCT
| BEFORE FIELD field-spec [,...]
| AFTER FIELD field-spec [,...]
| ON IDLE idle-seconds
| ON ACTION action-name [INFIELD field-spec]
| ON KEY ( key-name [,...] )
}
    dialog-statement
    [...]
{ statement
| NEXT FIELD { NEXT | PREVIOUS | field-spec}
| CONTINUE CONSTRUCT
| EXIT CONSTRUCT 
}
{ field-name
| table-name.field-name
| screen-array.field-name
| screen-record.field-name
}
{ BLACK | BLUE | CYAN | GREEN
| MAGENTA | RED | WHITE | YELLOW
| BOLD | DIM | INVISIBLE | NORMAL
| REVERSE | BLINK | UNDERLINE
}
where control-attribute is:{ ACCEPT [ = boolean ]
| CANCEL [ = boolean ]
| FIELD ORDER FORM
| HELP = help-number
| NAME = "dialog-name"
}