Panel Generation and Panel Input/Output

Panel definition can be done outside the REXX environment; however, panel generation and input/output is performed in a REXX exec or in the REXX interactive environment. The REXX interactive environment is an ideal place to test the initial panel development. To test display the panel use the TEST panel command. This displays the panel with no panel object file created. Also, there is no substitution for the variables on the panel. To create the panel object use either the GENERATE, SEND, or the CONVERSE panel commands. Use the FILE keyword to explicitly state what directory in RFS to find the panel source, or you can let it default to the current directory. The panel source name must have the panel name as the file name and 'PANSRC' as the file type. The panel object is created and filed in the same directory as the panel source with the file name equal to the source file name and with a file type of 'PANOBJ'. GENERATE creates the panel object and does not display the panel. SEND creates the panel object, displays the panel, and attempts variable substitution. CONVERSE is similar to SEND with an implied wait and receive.

Note:
There are side affects of being in a REXX interactive environment. Several panel keywords act differently: the cursor position on the SEND is ignored and keyboard lock is also ignored for SEND and CONVERSE.

The characteristics of the PANEL command follow.

Note:
To change the number of ATTRIBUTE arguments dynamically, a REXX variable needs to be used (put the literal attribute string in REXX variable and use the variable). For example, a program needs to change one field to blue or to change one field to blue and another field to blinking depending on operator input. One solution is:
field_id = 'xxxx'; /* name of field needing attribute changed*/
attr_string = 'attr('  field_id  'blue )';
if operator_input = y then
  attr_string = attr_string  'attr(' field_id2  'blink )'
'panel send panel_name' attr_string;
Note:
REXX panel facility generates the panel object if the object is not found or if the object is older than the source.