星期二, 10月 31, 2023

2000-10-04 如何利用Subfile message 顯示訊息?



□ Tips : 如何利用Subfile message 顯示訊息?


---------------------------------------
QDDSSRC SFLMSGD

     A                                      CA03
     A*-------------------------------------*
     A          R HED01
     A*-------------------------------------*
     A  80                                  ALARM
     A                                      KEEP
     A                                      BLINK
     A                                      OVERLAY
     A                                      PUTOVR
     A                                  1  2'SFLMSGD'
     A                                  1 30'Subfile Message Test'
     A                                  1 72DATE
     A                                      EDTCDE(Y)
     A            USER          10A  O  2  2
     A                                  2 72TIME
     A                                      EDTWRD('  :  :  ')
     A                                  8 18'This is a test of subfile message -
     A                                      function '
     A                                 21 67'Vengoal Chang'
     A                                      DSPATR(HI)
     A*-------------------------------------*
     A          R SFLMSG                    SFL
     A*-------------------------------------*
     A* SFLMSGRCD specify message show from line XX
     A                                      SFLMSGRCD(23)
     A            KEYVAR                    SFLMSGKEY
     A            SFPGMQ                    SFLPGMQ(10)
     A*-------------------------------------*
     A          R CTLMSG                    SFLCTL(SFLMSG)
     A*-------------------------------------*
     A                                      OVERLAY
     A                                      SFLDSP
     A                                      SFLDSPCTL
     A  65                                  SFLEND
     A                                      SFLINZ
     A                                      SFLSIZ(0011)
     A                                      SFLPAG(0002)
     A            SFPGMQ                    SFLPGMQ

QRPGLESRC  SFLMSGR

     H DEBUG  OPTION(*SRCSTMT:*NODEBUGIO)
     H DATEDIT(*YMD/)
     FSFLMSGD   CF   E             WORKSTN
     F                                     INFDS(INFDSP)
     D******************************************************
     D*     D E F I N E    D A T A  - S T R U C T U R E    *
     D******************************************************
     D INFDSP          DS
     D  PUSHED               369    369
     D* 指定 MESSAGE FILE
     D* MESSAGE FILE 可以 CRTMSGF 自行建立 
     D* 以 WRKMSGF 按 F6 加入訊息
     D MSGF            DS
     D  MSGFIL                 1     10    INZ('QCPFMSG')
     D  MSGFLB                11     20    INZ('*LIBL')
     D*
     D                 DS                  INZ
     D  MSGLEN                 1      4B 0
     D  TOPGCT                 5      8B 0
     D*
     D PBERR           DS
     D  BYTPRV                 1      4B 0 INZ(116)
     D  BYTAVA                 5      8B 0 INZ(0)
     D  ERRID                  9     15
     D  ERR###                16     16
     D  ERRDTA                17    116

     D******************************************************
     D*     D E F I N E    PROGRAM STATUS PARM             *
     D******************************************************
     D                SDS
     D  PGMID                  1     10
     D  WRSTN                244    253
     D  USER                 254    263
     D******************************************************
     D*     D E F I N E    C O N S T A N T                 *
     D******************************************************
     D F3              C                   CONST(X'33')
     C******************************************************
     C*             M A I N -  R O U T I N E               :
     C******************************************************
      * 將 MSGID 改為自行加入的 MSGID
     C                   MOVE      'CPF0001'     MSGID                          :
     C                   MOVEL(P)  'TEST'        MSG                            :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0002'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0003'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0005'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0006'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0007'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0008'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0010'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0011'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0190'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0191'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C                   MOVE      'CPF0192'     MSGID                          :
     C                   EXSR      @SNDPM                                       :
     C*                                                    
     C     F3            DOUEQ     PUSHED                                       :
     C*                                                    
     C                   WRITE     CTLMSG                                       :MSG SFL
     C                   EXFMT     HED01                                        :OPTION ENTRY
     C                   EXSR      @RMVPM                                       :
     C*                                                    
     C                   END                                                    :
     C*                                                    
     C                   MOVE      *ON           *INLR                          :
     C                   RETURN                                                 :
     C******************************************************
     C*             S U B   -  R O U T I N E               :
     C******************************************************
     C*----------------------------------------------------*
     C     *INZSR        BEGSR                                                  :
     C*----------------------------------------------------*
     C                   MOVE      *ON           *IN65                          :
     C                   MOVEL     PGMID         SFPGMQ                         :FOR MSG SFL
     C*                                                    
     C                   ENDSR                                                  :
     C*----------------------------------------------------*
     C     @SNDPM        BEGSR                                                  :
     C*----------------------------------------------------*
     C                   CALL      'QMHSNDPM'                                   :
     C                   PARM                    MSGID             7            :
     C                   PARM                    MSGF                           :
     C                   PARM                    MSG              78            :
     C                   PARM      78            MSGLEN                         :
     C                   PARM      '*INFO'       MSGTYP           10            :
     C                   PARM      '*'           TOPGMQ           10            :
     C                   PARM      0             TOPGCT                         :
     C                   PARM                    KEYVAR            4            :
     C                   PARM                    PBERR                          :
     C*                                                    
     C                   MOVE      *BLANK        MSG                            :
     C*                                                   
     C                   ENDSR                                                  :
     C*----------------------------------------------------*
     C     @RMVPM        BEGSR                                                  :
     C*----------------------------------------------------*
     C                   CALL      'QMHRMVPM'                                   :
     C                   PARM      '*'           TOPGMQ                         :
     C                   PARM      0             TOPGCT                         :
     C                   PARM      *BLANK        KEYVAR                         :
     C                   PARM      '*OLD  '      CLEAR            10            :
     C                   PARM                    PBERR                          :
     C*                                                    
     C                   ENDSR



沒有留言: