×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




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 thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 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.