Choix d'une commande (CPP)

BoTTom |
     FCHXCMDD CF  E                    WORKSTN      KINFDS INFODS
     F                                        RANG  KSFILE FMTSFL
     I              'LISTE DES CDES'      C         CTX
     I              'Liste en cours..'    C         MTX
     I              'Liste terminée  '    C         MTX2
      * RANG DU PREMIER ENREG AFFICHé (==> SFLRCDNBR)
     IINFODS      DS
     I                                    B 378 3790L2
      * ENTETE USER SPACE
     IRTVINF      DS
     I                                    B   1   40FIN
     I                                    B   5   80TAILLE
     I                                    B   9  120NBOBJ
     I                                    B  13  160LGPOST
      * DECLARATION DE VARIABLES BINAIRES
     IBINDS       DS
     I                                    B   1   40DEBUT
     I                                    B   5   80LG
     I                                    B   9  120LGRCV
      * QUALIF/ USER SPACE ET CMDE
     IQUALDS      DS
     I                                        1  10 SPCNAM
     I                                       11  20 SPCLIB
     I                                        1  20 USRSPC
     I                                       21  30 CMDE
     I                                       31  40 BIBLI
     I                                       21  40 CMDQ
      * DEFINITION D'UN OBJET
     ILIST        DS
     I                                        1  10 OBJNAM
     I                                       11  20 OBJLIB
     I                                        1  20 OBJQ
     I                                       21  30 OBJTYP
     I                                       42  91 TEXTE
     I                                       92 108 FILLER
      * CODE ERREUR API
     IERRDS       DS
     I                                    B   1   40LGDS
     I                                    B   5   80LGERR
     I                                        9  15 MSGID
     I                                       16  16 RESERV
      * VAR POUR API ENVOI DE MESSAGE
     IMSGDS       DS
     I                                        1  10 MSGF


|
     I                                       11  20 MSGL
     I                                        1  20 MSGFL
     I                                    B  21  240LENTXT
     I                                    B  25  280STACK
     I                                    B  29  320KEY
     C           *ENTRY    PLIST
     C           CMDQ      PARM           OBJBIB 20
      *
     C           CMDE      IFEQ *BLANK
     C                     MOVEL'*ALL'    CMDE
     C                     ENDIF
     C           BIBLI     IFEQ *BLANK
     C                     MOVEL'*USRLIBL'BIBLI
     C                     ENDIF
     C                     MOVEL'*CMD'    OBJTYP
      *
     C                     WRITECDE
      * ENVOI MESSAGE STATUS "LISTE EN COURS"
     C                     Z-ADD16        LGDS
     C                     MOVEL'QCPFMSG' MSGF
     C                     MOVEL'*LIBL'   MSGL
     C                     MOVELMTX       MSGTXT
     C                     CALL 'QMHSNDPM'
     C                     PARM 'CPF9898' ID      7
     C                     PARM           MSGFL
     C                     PARM           MSGTXT 50
     C                     PARM 50        LENTXT
     C                     PARM '*STATUS' MSGTYP 10
     C                     PARM '*EXT'    PGMQ   10
     C                     PARM 0         STACK
     C                     PARM           KEY
     C                     PARM           ERRDS
      * CHARGEMENT SOUS FICHIER
     C                     EXSR CHGT
      *
     C           NBOBJ     IFGT 0
      * ENVOI MESSAGE STATUS "LISTE TERMINEE"
     C                     MOVELMTX2      MSGTXT
     C                     CALL 'QMHSNDPM'
     C                     PARM 'CPF9898' ID      7
     C                     PARM           MSGFL
     C                     PARM           MSGTXT 50
     C                     PARM 50        LENTXT
     C                     PARM '*STATUS' MSGTYP 10


|
     C                     PARM '*EXT'    PGMQ   10
     C                     PARM 0         STACK
     C                     PARM           KEY
     C                     PARM           ERRDS
      *
     C                     MOVE *ON       *IN40
     C                     MOVEL'*'       SFLQ
      *
     C           *IN03     DOUEQ*ON
     C                     WRITEERRCTL
     C                     EXFMTFMTCTL
     C           *IN03     IFEQ *OFF
     C                     Z-ADDL2        LIGNE
      * REMOVE DES MESSAGES RECUS
     C                     CALL 'QMHRMVPM'
     C                     PARM '*'       PGMQ
     C                     PARM 0         STACK
     C                     PARM '    '    KEYC    4
     C                     PARM '*OLD'    RMVTYP 10
     C                     PARM           ERRDS
     C                     EXSR TRT
     C                     ENDIF
     C                     ENDDO
     C* USER SPACE NON VIDE
     C                     ENDIF
     C                     MOVE *ON       *INLR
     C                     EXSR DLTUS
      *
     C           CHGT      BEGSR
     C                     MOVEL'CHXCMD'  SPCNAM
     C                     MOVEL'QTEMP'   SPCLIB
     C                     MOVEL'LISTFMT 'EXT    10
     C                     Z-ADD1024      TAILLE
     C                     MOVE ' '       INT    10
     C                     MOVEL'*USE'    AUT    10
     C                     MOVELCTX       TXT    50
      * dlt du user space si présent dans QTEMP
     C                     EXSR DLTUS
      * CREATION USER SPACE PAR API QUSCRTUS
     C                     CALL 'QUSCRTUS'
     C                     PARM           USRSPC
     C                     PARM           EXT
     C                     PARM           TAILLE
     C                     PARM           INT


|
     C                     PARM           AUT
     C                     PARM           TXT
      * REMPLISSAGE DU USER SPACE VIA API (LISTE DES OBJETS)
     C                     CALL 'QUSLOBJ'              99
     C                     PARM           USRSPC
     C                     PARM 'OBJL0200'FMT     8
     C                     PARM           CMDQ
     C                     PARM           OBJTYP
     C           *IN99     IFEQ *ON
     C                     Z-ADD0         NBOBJ
     C                     ELSE
      * EXTRACTION DES INFOS D'ENTETE (POUR RETROUVER DEBUT DE LA LISTE)
     C                     Z-ADD125       DEBUT
     C                     Z-ADD16        LG
     C                     CALL 'QUSRTVUS'
     C                     PARM           USRSPC
     C                     PARM           DEBUT
     C                     PARM           LG
     C                     PARM           RTVINF
     C                     ENDIF
     C           NBOBJ     IFGT 0
     C                     Z-ADD0         RANG    40
     C                     MOVEA'00'      *IN,30
     C                     WRITEFMTCTL
     C                     MOVE *ON       *IN30
     C                     Z-ADD1         LIGNE
     C                     Z-ADDLGPOST    LG
     C           FIN       ADD  1         DEBUT            1ER POSITION
      *
      * BOUCLE SUR NOMBRE DE MEMBRES EXTRAITS
      *
     C                     DO   NBOBJ
      * EXTRACTION D'UN POSTE PAR API QUSRTVUS (-> DONNE LE NOM )
     C                     CALL 'QUSRTVUS'
     C                     PARM           USRSPC
     C                     PARM           DEBUT
     C                     PARM           LG
     C                     PARM           LIST
     C                     MOVE *ON       *IN31
     C                     ADD  1         RANG
     C                     WRITEFMTSFL
      * POSITIONNEMENT SUR PROCHAIN POSTE
     C                     ADD  LG        DEBUT
     C                     ENDDO


|
      *
     C                     ENDIF
     C                     ENDSR
      *
      *
     C           TRT       BEGSR
     C                     READCFMTSFL                   41
     C           *IN41     DOWEQ*OFF
     C                     SELEC
     C           OPT       WHEQ '1'
     C           '?'       CAT  OBJLIB:1  EXEC  256 P
     C                     CAT  '/':0     EXEC
     C                     CAT  OBJNAM:0  EXEC
     C                     CALL 'QCMDEXC'              97
     C                     PARM           EXEC
     C                     PARM 256       EXECL  155
     C           OPT       WHEQ '5'
     C           '?'       CAT  OBJLIB:1  EXEC  256 P
     C                     CAT  '/':0     EXEC
     C                     CAT  OBJNAM:0  EXEC
     C                     CALL 'QCMDCHK'              97
     C                     PARM           EXEC
     C                     PARM 256       EXECL  155
     C           OPT       WHEQ '8'
     C           'DSPCMD'  CAT  OBJLIB:1  EXEC  256 P
     C                     CAT  '/':0     EXEC
     C                     CAT  OBJNAM:0  EXEC
     C                     CALL 'QCMDEXC'              97
     C                     PARM           EXEC
     C                     PARM 256       EXECL  155
     C                     ENDSL
     C                     MOVE ' '       OPT
     C                     UPDATFMTSFL
     C                     READCFMTSFL                   41
     C                     ENDDO
     C                     ENDSR
      *
     C           DLTUS     BEGSR
      * DLT DU USER SPACE (Y COMPRIS EN CAS DE PLANTUS) API QUSDLTUS
     C                     Z-ADD16        LGDS
     C                     CALL 'QUSDLTUS'             99
     C                     PARM           USRSPC
     C                     PARM           ERRDS
     C                     ENDSR


|
      *
     C           *PSSR     BEGSR
     C           *IN98     IFEQ *ON
     C                     MOVE *ON       *INLR
     C                     RETRN
     C                     ELSE
     C                     MOVE *ON       *IN98
     C                     EXSR DLTUS
      * RENVOI LE DERNIER MESSAGE *ESCAPE
     C                     CALL 'QMHRSNEM'
     C                     PARM '    '    KEYC
     C                     PARM           ERRDS
     C                     ENDIF
     C                     ENDSR




©AF400