# Property of Four Js* # (c) Copyright Four Js 1995, 2019. All Rights Reserved. # * Trademark of Four Js Development Tools Europe Ltd # in the United States and elsewhere # # Four Js and its suppliers do not warrant or guarantee that these # samples are accurate and suitable for your purposes. Their inclusion is # purely for information purposes only. MAIN DEFINE a1 DYNAMIC ARRAY OF RECORD col11 INTEGER, col12 CHAR(10) END RECORD DEFINE a2 DYNAMIC ARRAY OF RECORD col21 INTEGER, col22 CHAR(10) END RECORD DEFINE field1 INTEGER DEFINE field2, field3, field4 CHAR(50) OPTIONS INPUT WRAP OPEN FORM f FROM "SubBlockActions" DISPLAY FORM f LET field1 = 123 LET field2 = "aaaa" LET field4 = "xxxx" LET a1[1].col11 = 1 LET a1[2].col11 = 2 LET a1[3].col11 = 3 LET a2[1].col21 = 1 LET a2[2].col21 = 2 DIALOG ATTRIBUTES(UNBUFFERED) INPUT BY NAME field1,field2,field3 ATTRIBUTES(NAME="input1", WITHOUT DEFAULTS) ON ACTION foo ERROR "Action foo of INPUT input1 sub-block" ON ACTION bar ERROR "Action bar of INPUT input1 sub-block" END INPUT INPUT ARRAY a1 FROM sr1.* ATTRIBUTES (WITHOUT DEFAULTS) ON ACTION foo ERROR "Action foo of INPUT ARRAY sr1 sub-block" END INPUT INPUT ARRAY a2 FROM sr2.* ATTRIBUTES (WITHOUT DEFAULTS) ON ACTION foo ERROR "Action foo of INPUT ARRAY sr2 sub-block" END INPUT INPUT BY NAME field4 ATTRIBUTES(NAME="input2", WITHOUT DEFAULTS) END INPUT ON ACTION disable_input1_foo CALL dialog.setActionActive("input1.foo",FALSE) ON ACTION enable_input1_foo CALL dialog.setActionActive("input1.foo",TRUE) ON ACTION disable_input1_bar CALL dialog.setActionActive("input1.bar",FALSE) ON ACTION enable_input1_bar CALL dialog.setActionActive("input1.bar",TRUE) ON ACTION disable_actions_sr1 CALL list_actions(DIALOG,"sr1", FALSE) ON ACTION enable_actions_sr1 CALL list_actions(DIALOG,"sr1", TRUE) ON ACTION disable_actions_sr2 CALL list_actions(DIALOG,"sr2", FALSE) ON ACTION enable_actions_sr2 CALL list_actions(DIALOG,"sr2", TRUE) ON ACTION close EXIT DIALOG END DIALOG END MAIN FUNCTION list_actions(d, name, activate) DEFINE d ui.Dialog, name STRING, activate INTEGER CALL d.setActionActive(name||".insert",activate) CALL d.setActionActive(name||".append",activate) CALL d.setActionActive(name||".delete",activate) CALL d.setActionActive(name||".foo",activate) END FUNCTION