Previous Topic: Printer File DDS ExampleNext Topic: RPG III Program Source Example


CL Program Source Example

PGM PARM(&FL &MBR)
/*T: YDSPHLP Display Help Text - CPP /
/*Z: CRTCLPGM LOG(*NO)
/*H: SYSTEM : Widget processing system
/*H: PROGRAMMER : G.Henry
/*H: DATE : 24/04/84
/*H: (C) COPYRIGHT 1984,92 The Widget corporation
/*M: 01/04/92 R.Fess Change to V2R2 Message Handling
/* Entry variables */
DCL &FL *CHAR 20 /* MENU FILE/LIB */
DCL &FILE *CHAR 10 /* MENU FILE NAME */
DCL &FLIB *CHAR 10 /* LIBRARY NAME */
DCL &MBR *CHAR 10 /* MENU FILE/MBR */
/* Work variables */
DCL &KEYVAR *CHAR 4 /* MESSAGE KEY */
DCL &ERRCDE *CHAR 4 X’00000000’
/*H: 0. Global monitor for errors. */
MONMSG MSGID(CPF0000 YYY0000) EXEC(GOTO ERROR)
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*H: 1. Process input parameters . */
CHGVAR &FILE %SUBSTRING(&FL 1 10)
CHGVAR &FLIB %SUBSTRING(&FL 11 10)
/*. . . . . . . . . . . . . . . . . . . . . . . . . . . .*/
/*H: 1.1 Check library & file exist. */
IF (%SST(&FLIB 1 1 ) *NE ‘*’)CHKOBJ QSYS/&FLIB *LIB
CHKOBJ OBJ(&FLIB/&FILE) OBJTYPE(*FILE) MBR(&MBR) +
AUT(*USE)
/* = = = = = = = = = = = = = = = = = = = = = = = = = = =*/
/*H: 2. Call RPG program to Display help text */
CALL YDDSHPR (&MBR &FILE &FLIB &MSGID)
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = */
/*H: 3. Send completion message. */
SNDPGMMSG MSGID(&MSGID) MSGF(YMSG)+
MSGDTA(&FILE||&FLIB||&MBR) +
MSGTYPE(*COMP)
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = */
ENDPGM: RCLRSC
RMVMSG CLEAR(*ALL) /* Remove irrelevant messages */
RETURN
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/*H: 99. ERROR HANDLING */
ERROR: RCVMSG MSGTYPE(*EXCP)RMV(*NO) KEYVAR(&KEYVAR)
CALL QMHRSNEM(&KEYVAR &ERRCDE)/*RESEND */
MONMSG CPF0000
GOTO ENDPGM
YCOPYRIGHT COPYRIGHT(‘G.Henry’) WIDGETCORP(WIDGETCORP) +
DATE(240484)
ENDPGM