'PANEL SEND SIGNON' CLR_INP_FIELDS PATH_NAME ,
'CURSOR(' CURS_NAME ')' ATTR_STRING
IF RC > 4 THEN /* more than a warning */
SIGNAL ERROR /* clean up and exit */
'PANEL RECEIVE SIGNON '
IF RC > 4 THEN
SIGNAL ERROR /* clean up and exit */
ITERATE /* redisplay panel */
CLR_INP_FIELDS = '' /* display input fields with variable values */
IF &lnot;SEARCH(ACCOUNT_NUM) THEN /* search for account number */
DO;
MESSAGE = ' Account Number not found, Please re-ENTER Number'
CURS_NAME = 'ACCOUNT_NUM' /* put cursor in ACCOUNT field */
ATTR_STRING = 'ATTR( ACCOUNT_NUM REV)'
ITERATE
END;
DO;
MESSAGE = ' PIN Number is incorrect, Please check to see your',
'Account Number is correct and re-ENTER your PIN';
CURS_NAME = 'PIN';
ATTR_STRING = 'ATTR( PIN REV)';
ITERATE ; /* display the panel again */
END;
LEAVE ;
END ; /* forever */
DISP_DATE = DATE('U'); /* set to display current date */
MSG.1 = 'Be sure cursor is in the first column!';
MSG.2 = 'Press ENTER or and PF key to continue.';
SALUTATION = 'Hi' WORD(ACCOUNT.ACCOUNT_NUM,5) ,
WORD(ACCOUNT.ACCOUNT_NUM,4) ||,
', How may we be a service to you?';
PAN.CNAM = '';
'PANEL SEND SERVICE CURSOR(SERVICE.1)' PATH_NAME
IF RC > 4 THEN
SIGNAL ERROR; /* clean up and exit */
'PANEL RECEIVE SERVICE'
IF RC > 4 THEN
SIGNAL ERROR; /* clean up and exit */
SALUTATION = ''; /* greeting only once */
WHEN PAN.CNAM = 'SERVICE.1' THEN
CALL ITEMIZE_ROUTINE;
WHEN PAN.CNAM = 'SERVICE.2' THEN
CALL NON_ITEMIZE_ROUTINE;
WHEN PAN.CNAM = 'SERVICE.3' THEN
CALL QUERY_RET_ROUTINE;
WHEN PAN.CNAM = 'SERVICE.4' THEN
CALL CAL;
WHEN PAN.CNAM = 'SERVICE.5' THEN
CALL EXIT_ROUTINE;
DO;
'PANEL SEND MSGBOX2 POS(7 10) NOERASE' PATH_NAME
IF RC > 4 THEN
SIGNAL ERROR;
'PANEL RECEIVE MSGBOX2'
IF RC > 4 THEN
SIGNAL ERROR;
END;
Panel Facility
Chapter 24. REXX/CICS Panel Facility 313