|
You do not need the CL. You can call the msg api's directly from RPG. See Below (this is very old code): D***************************************************************** D** DATA STRUCTURE VARIABLES USED BY SEND/RETRIEVE MESSAGE API *** D***************************************************************** D QMHGEN DS D QMHFIL 1 20 INZ('IBNKMSGF *LIBL ') D QMHLEN 21 24B 0 INZ(240) D QMHTYP 25 34 INZ('*INFO ') D QMHPGQ 35 44 INZ('*EXT ') D QMHSTK 45 48B 0 INZ(0) D QMHKEY 49 52 INZ(' ') D QMHRMV 53 62 INZ('*ALL ') D QMHM2S 63 69 INZ('CPF9999') D QMHMDT 70 309 INZ(' ') D QMHFMT 310 317 INZ('RTVM0100') D QMHMID 318 324 INZ('CPI0C09') D QMHDTA 325 524 INZ(' ') D QMHMDL 525 528B 0 INZ(200) D QMHRPL 529 538 INZ('*YES ') D QMHCTL 539 548 INZ('*YES ') * D QMHERR DS D QMHEBA 1 4B 0 INZ(256) D QMHEBR 5 8B 0 INZ(0) D QMHEMI 9 15 D QMHRSV 16 16 D QMHEMD 17 256 * D QMHRTV DS D QMHDBR 1 4B 0 INZ(0) D QMHDBA 5 8B 0 INZ(0) D QMHL1R 9 12B 0 INZ(0) D QMHL1A 13 16B 0 INZ(0) D QMHL2R 17 20B 0 INZ(0) D QMHL2A 21 24B 0 INZ(0) D QMHMSG 53 240 INZ(' ') D***************************************************************** D* QUSEMD (240A) Error message data * D***************************************************************** D QUSGEN DS D QUSRV2 1 180 INZ(' ') D QUSODT 101 150 D QUSRVL 181 184B 0 INZ(180) D QUSIFN 185 192 INZ('OBJD0200') D QUSONL 193 212 INZ(' *LIBL ') D QUSOTR 213 222 INZ('*FILE ') D***************************************************************** D QUSERR DS D QUSEBA 1 4B 0 INZ(256) D QUSEBR 5 8B 0 INZ(0) D QUSEMI 9 15 D QUSRSV 16 16 D QUSEMD 17 256 ***************************************************************** * DATASTRUCTURES FOR MULTI_MESSAGE DATA * *---------------------------------------------------------------* * These is the standard Messagehandling datastructure. * D***************************************************************** D MSG001 DS D MSGF01 1 40 D MSGF02 41 80 D MSGF03 81 120 D MSGF04 121 160 D MSGF05 161 200 D MSGF06 201 240 Routines to execute the calls *************************************************************** * SUBR : R10 : Put message in the messagequeue. * ***************************************************************** C R10 BEGSR * * Field Initializations if not already done *---------------------------------------------------------------- C QMHPGQ IFEQ *BLANK * C MOVEL(P) $PGMN QMHPGQ C CLEAR QMHM2S C CLEAR QMHEMI C CLEAR QMHRSV C CLEAR QMHMDT C CLEAR QMHSTK * C ENDIF *---------------------------------------------------------------- C CALL 'QMHSNDPM' $LSNDM 04 * C ENDSR * ***************************************************************** * SUBR : R11 : Delete messages from messagequeue. * ***************************************************************** C R11 BEGSR * * RESET error parameters. * C RESET QMHKEY C RESET QMHEBA C RESET QMHEBR * C CALL 'QMHRMVPM' $LRMVM 04 * * Definition section. *---------------------------------------------------------------- * PARAMETERLIST FOR REMOVE MESSAGE *---------------------------------------------------------------- C $LRMVM PLIST REMOVE MESSAGE C PARM QMHPGQ MESSAGE QUEUE C PARM QMHSTK CALL STCK COUNT C PARM QMHKEY MSG KEY C PARM QMHRMV MSG 2 REMOVE C PARM QMHERR ERROR CODE * * PARAMETERLIST FOR SEND MESSAGE *---------------------------------------------------------------- C $LSNDM PLIST SEND MESSAGE C PARM QMHM2S MSG IDENTIFIER C PARM QMHFIL MSG FILE C PARM QMHMDT MSG DATA C PARM QMHLEN MSG LENGTH C PARM QMHTYP MSG TYPE C PARM QMHPGQ MSG QUEUE C PARM QMHSTK CALL STCK COUNT C PARM QMHKEY MSG KEY C PARM QMHERR ERROR CODE *---------------------------------------------------------------- C ENDSR ***************************************************************** * SUBR : R12 : Send finishing message to previous PGM. * ***************************************************************** C R12 BEGSR * C MOVEL(P) '*INFO ' QMHTYP C MOVEL(P) '* ' QMHPGQ C Z-ADD 2 QMHSTK C EXSR R10 * C ENDSR Standard way to send a message (For a message without or with one variable) C MOVEL(P) K@53 QMHMDT C MOVEL 'APP0001' QMHM2S C EXSR R10 And a multy variable message (all variables are standard 40 positions long). C CLEAR MSG001 C MOVEL(P) K@52 MSGF01 C MOVEL(P) K@52F MSGF02 C MOVEL(P) MSG001 QMHMDT C MOVE 'GEN0002' QMHM2S C EXSR R10 Cheers, Eduard. "Beeson, Terry" <Terry.Beeson@xxxxxxxxxxxxxxxxx> wrote: Thanks Marco. I'll give it a go. -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Marco Facchinetti Sent: 16 November 2004 12:29 To: RPG programming on the AS400 / iSeries Subject: Re: Message Subfiles This is something that I copy from a looong time: A R SFLMSG SFL A*%%TS SD 20000602 095106 METAILE REL-V4R4M0 5769-PW1 A TEXT('MSG PGM') A SFLMSGRCD(24) A MSGKEYW SFLMSGKEY A PROGRAM SFLPGMQ(10) A R SFLMSGC SFLCTL(SFLMSG) A OVERLAY A SFLDSP A SFLDSPCTL A SFLINZ A N33 AON33 SFLEND A SFLSIZ(0010) A SFLPAG(0001) A PROGRAM SFLPGMQ and this is the cl part: (PGM MSNDMSG) PGM PARM(&MSG &MSGF) DCL VAR(&MSG) TYPE(*CHAR) LEN(7) /* Msgkey */ DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) /* Msg file */ SNDPGMMSG MSGID(&MSG) MSGF(&MSGF) MONMSG MSGID(CPF0000) endpgm (PGM MRMVMSG) PGM RMVMSG PGMQ(*PRV) MSGQ(*PGMQ) CLEAR(*ALL) MONMSG MSGID(CPF0000) ENDPGM and the rpg calling part: dMrmvmsg PR dMsndmsg PR d 7 const d 10 d filemsg s 10 inz('MSGFNAME') dutility sds d program *proc .... a typical use: c write sflmsgc c exfmt ad0000d c callp mrmvmsg ... c callp msndmsg('ATT0002':FILEMSG) Don't like procedures? use CALL and PARM. HTH Marco --- "Beeson, Terry" wrote: > Hi All > > What is the best (and easiest?) method to display > multiple messages at the bottom of a screen? > > If anyone has got some sample code they are willing to > share - I would be most grateful. > > Thanks and regards,, > Terry > __________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l. -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.