The DIALOG control class

This topic explains the purpose of the ui.DIALOG class.

Inside a dialog instruction, the DIALOG predefined keyword represents the current dialog object. This dialog object can be used to execute methods provided by the ui.DIALOG built-in class.

For example, you can enable or disable an action with the setActionActive() dialog method, or you can hide or show the default action view with the setActionHidden() method:
BEFORE INPUT
  CALL DIALOG.setActionActive("zoom",FALSE)
AFTER FIELD field1
  CALL DIALOG.setActionHidden("zoom",TRUE)
The setFieldActive() method can be used to enable or disable a field during the dialog:
ON CHANGE custname
   CALL DIALOG.setFieldActive( "custaddr",
               (rec.custname IS NOT NULL) )
The ui.Dialog class also provides methods to configure the dialog, for example to enable multiple row selection:
BEFORE DIALOG
   CALL DIALOG.setSelectionMode( "sr1", 1 )

When using methods of the ui.Dialog class that alter the data model or change the current field or row, control blocks like BEFORE FIELD, AFTER ROW, BEFORE DELETE are not executed: These are only fired to detect and control end user activity. Program code is considered as part of the dialog implementation. For example, methods such as ui.Dialog.deleteRow() must not execute BEFORE DELETE / AFTER DELETE control blocks. These control blocks are only fired by an end-user "delete" action.