Passing a dialog reference to functions
Using the DIALOG
keyword outside a dialog instruction
block results in a compilation error. However, you can pass the object
to a function that defines the dialog parameter with the ui.Dialog
type.
The next example passes the
DIALOG
object reference
to the setupDialog()
function, which implements
action activation rules that must be applied after different events,
during the dialog execution:INPUT BY NAME custid, custname, custaddr
BEFORE INPUT
CALL setupDialog(DIALOG)
...
ON ACTION check_address
...
CALL setupDialog(DIALOG)
...
END INPUT
FUNCTION setupDialog(d)
DEFINE d ui.Dialog
DEFINE isAdmin BOOLEAN
LET isAdmin = (global_params.user_group == "admin")
CALL d.setActionActive("delete", isAdmin)
CALL d.setActionActive("convert", isAmdin)
CALL d.setActionActive("check_address",
isAdmin AND rec.custaddr IS NOT NULL)
END FUNCTION