× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Tom,

Here is a set of templates I use for message subfiles.

I paste this source into my display file.
DDS Source
     A          R MSGSFL                    SFL SFLMSGRCD(24)
     A            MSGKEY                    SFLMSGKEY
     A            MSGPGMQ                   SFLPGMQ(10)
     A          R MSGCTL                    SFLCTL(MSGSFL)
     A                                      SFLDSP
     A                                      SFLDSPCTL
     A                                      SFLSIZ(2)
     A                                      SFLPAG(1)
     A N03                                  SFLEND
     A                                      SFLINZ
     A            MSGPGMQ                   SFLPGMQ(10)


RPG D Spec. I include a /copy compiler directive to this code in my D spec
in the source that contains the Display file.
D/copy *libl/qrpglesrc,msghndd

?
********************************************************************************
?     * In the MSGF field, place the name of the message file your program
is        *
?     * using.
*
?     * The coorisponding display file for this snippet is
MWLIB/QDDSSRC(MSGHND)     *
?     * The subfile message control record is MSGCTL.
*
?     *
?     * Message Handling API Data Items.
?     *
     Dstkcnt           S              9b 0
     Ddtalen           S              9b 0 INZ(80)
     Derrcod           s              9b 0
     Dmsgf             s             20    INZ('MESSAGE   *LIBL    ')
     Dmsglib           s             10    INZ('*LIBL')
     Dmsgky            s              4    INZ(*blanks)
     Dmsgdta           S             80    INZ(*blanks)
     Dmsgtyp           S             10    INZ('*DIAG')
     Dmsgrmv           S             10    INZ('*ALL')
     Dmsgid            S              7    INZ(*blanks)

RPG C Spec,
I include a /copy  compiler to this code at the bottom of the C spec in the
source that contains the Display file.

?     *
?     *  Send Message API - Sends messages to the program message queue
?     *
     C     @sndmsg       begsr
     c                   movel     '*'           msgpgmq
     c                   call      'QMHSNDPM'
     C                   parm                    msgid
     c                   parm                    msgf
     c                   parm                    msgdta
     c                   parm                    dtalen
     c                   parm                    msgtyp
     c                   parm                    msgpgmq
     c                   parm                    stkcnt
     c                   parm                    msgkey
     c                   parm                    errcod
     c                   endsr
?     *
?     *  Clear Message API - Clears the programs message queue
?     *
     C     @clrmsg       begsr
     c                   movel     '*'           msgpgmq
     c                   call      'QMHRMVPM'
     c                   parm                    msgpgmq
     c                   parm                    stkcnt
     c                   parm                    msgky
     c                   parm                    msgrmv
     c                   parm                    errcod
     c                   endsr

Then before I EXFMT a record format, I WRITE MSGCTL. and after the EXFMT I
EXSR  @CLRMSG

To place an entry in the message subfile I execute code something like
this:

    C                   EVAL      msgdta = 'Invalid Customer Number.'
?    C                   EXSR      @sndmsg

or:

     C                   EVAL      msgid = 'OEI0001'
     C                   EXSR      @sndmsg

I hope this helps.


Thanks,

Mark


Mark Walter
Sr. Programmer/Analyst
Hanover Wire Cloth a div of CCX, Inc.
mwalter@hanoverwire.com
http://www.hanoverwire.com
717.637.3795 Ext.3040



As an Amazon Associate we earn from qualifying purchases.

This thread ...


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

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.