*uelques trucs et exemples RPG III

BoTTom |    Changer de couleur
 
 
 
     ** RECHERCHE       TEXTE COMPLEMENTAIRE                         *
 
 
     ** ---------       -------------------------------              *
      * $$ SDS          UTILISATION DATA STRUCTURE SYSTEME           *
      * $$ CONCAT       ROUTINE CONCATENATION NOM-PRENOM             *
      * $$ INFDS        UTILISATION INFDS (INFORMATIONS FICHIER)     *
      * $$ QCLSCAN      PGM SYSTEME DE RECHERCHE DE CARACTERE(S)     *
      * $$ QDCXLATE     PGM SYSTEME DE CONVERSION                    *
      * $$ CTRLDAT      CONTROLE DE DATE                             *
      * $$ CVTDAT       CONVERSION DE DATE                           *
      * $$ QCMDEXC      PGM SYSTEME D'EXECUTION DE COMMANDE          *
      * $$ RTVDTAARA    EXEMPLE DE RECUPERATION DE DATA AREA         *
      * $$ SFLMSG       SOUS-FICHIER MESSAGE (DSPF + TRAITEMENT GAP) *
      * $$ SFLDYN       EXEMPLE DE CHGT DE SOUS-FICHIER EN DYNAMIQUE *
      * $$                                                           *
      * -------------------------------------------------------------*
 
 


|    Changer de couleur
 
     I**********************
     I* $$ SDS             *
     I* UTILISATION SDS    *
     I**********************
     I           SDS
     I*                                       1  10 Nom du Pgm
     I*                                      11  150Status Code
     I*                                      16  200Previous Status Code
     I*                                      21  28 N° Séquence du Src
     I*                                      29  36 Nom de la Routine
     I*                                      37  390Nombre de Param.
     I*                                      40  42 CPF ou MCH
     I*                                      43  46 N° de l'erreur
     I*                                      47  50 MI / ODT
     I*                                      51  80 Messages (WRKARA)
     I*                                      81  90 Biblio. du Pgm
     I*                                      91 170
     I*                                     171 174
     I*                                     175 200 +== Inutilisé ==+
     I*                                     201 208 Nom Dernier fichier
     I*                                     209 243 Info / Dernier Fich


|    Changer de couleur
     I*                                     244 253 Nom du JOB
     I*                                     254 263 Nom du Profil
     I*                                     264 2690Numéro du Job
     I*                                     270 2750Date entre système
     I*                                     276 2810Date exécution prog
     I*                                     282 2870Heure exécution prg
     I*                                     288 293 Date de création
     I*                                     294 299 Heure de création
     I*                                     300 303 Niveau compilateur
     I*                                     304 313 Nom du fichier src
     I*                                     314 323 Bibli du fichi. src
     I*                                     324 333 Nom du Membre
     I*                                     334 429 +== Inutilise ==+
 
 
 
 
 
 
 
 
 


|    Changer de couleur
     C*********************************
     C* $$ INFDS                      *
     C* UTILISATION INFDS             *
     C* MEMBRE, LONG ENREG, N° RANG   *
     C*********************************
     FFICHIER UF  E           K        DISK         KINFDS INFDS
     IINFDS       DS
      *********************INFOS FICHIER
      * FICHIER (NOM GAP)
     I                                        1   8 FIGAP
      * OUVERT = 1
     I                                        9   9 OPEN
      * FIN DE FICHIER = 1
     I                                       10  10 EOF
      * NOM DU FORMAT RPG SI DESC EXTERNE
     I                                       38  45 FORMA
      * ERREUR SUR FICHIER MCH OU CPF
     I                                       46  52 ERREUR
      * TAILLE ECRAN
     I                                       67  70 SIZE
      ***********************INFOS EN RETOUR (FEEDBACK AREA)
      * ODP DS=DEVICE DB=DATA BASE SP=SPOULE


|    Changer de couleur
     I                                       81  82 ODP
      * FICHIER OUVERT
     I                                       83  92 FIREEL
      * BIBLIOTHEQUE
     I                                       93 102 BIBLI
      * NOM DU MEMBRE
     I                                      129 138 MEMBRE
      * LONGUEUR MAXI
     I                                    B 125 1260LONMAX
      * NOMBRE DE LIGNE (DSPF OU PRTF)
     I                                    B 152 1530NBLI
      * NOMBRE DE COLONNE (DSPF)OU DE CARACT PAR LIGNE IMPRIMMEE (PRTF)
     I                                    B 154 1550NBCOL
      * NB ENREG DANS LE MEMBRE (DATA BASE OU SPOULE)
     I                                    B 156 1590NBENR
      * ACCES KU= CLE UNIQUE, KF= CLE FIFO, KL= CLE LIFO, AR= ARRIVEE
     I                                      160 1610ACCES
      * NOM DE L'UNITE
     I                                      241 2500DEV
      * N° DE  LIGNE SUR ECRAN
     I                                      253 2540NOLI
      * N° DE COLONNE SUR ECRAN


|    Changer de couleur
     I                                      255 2560NOCOL
      * LONGUEUR DE L'ENREG
     I                                    B 283 2860RECLON
      * N° RELATIF D'ENREGISTREMENT
     I                                    B 397 4000RECNO
 
 
 
      *=====================
      * $$ QCMDEXC         =
      *=====================================*
      *=  ROUTINE D'UTILISATION DE QCAEXEC =*
      *=====================================*
     E                    MSG     1   1 80
     C                     MOVEAMSG       CMD
      *
     C                     CALL 'QCMDEXC'
     C                     PARM           CMD    80
     C                     PARM 80        LONG   155
**
SNDBRKMSG MSG('ROUTINE QCMDEXC ...........') TOMSGQ(xxxxxx)
 


|    Changer de couleur
 
 
     I*=====================
     I* $$ CVTDAT          =
     I*********************************
     I* ROUTINE DE CONVERSION DE DATE *
     I* DE JMA VERS AMJ               *
     I*********************************
     I            DS
     I                                        1   20J
     I                                        3   40M
     I                                        5   60A
     I                                        1   60JMA
     I            DS
     I                                        1   20AA
     I                                        3   40MM
     I                                        5   60JJ
     I                                        1   60AMJ
     C                     Z-ADDJ         JJ
     C                     Z-ADDM         MM
     C                     Z-ADDA         AA
 


|    Changer de couleur
     I*=====================
     I* $$ RTVDATARA       =
     C*********************************
     C* RECUPERATION D'UNE DTAARA     *     *LOCK & *UNLOCK POUR
     C* ET MAJ                        *     VERROUILLER (FACULTATIF)
     C*********************************
     C           *NAMVAR   DEFN           NOMDTA
     C           *LOCK     IN   NOMDTA
     C*
     C*           TRAITEMENT
     C*
     C           *UNLOCK   OUT
     I*=====================
     I* $$ CTRLDAT         =
     C*******************************
     C* Routine de contrôle de date *
     C*******************************
     A      Definition de la date dans les SDD
     A--------------------------------------------------
     A            JOUR                      RANGE(1 31)
     A            MOIS                      RANGE(1 12)
     A            ANNEE                     COMP(GE 80)


|    Changer de couleur
      *-------------------------------------------------
     E                    FIN    12  12  2 0
     E*-------------------------------------------------
     C           ANNEE     DIV  4         RESULT  20
     C                     MVR            RESTE   20
     C                     Z-ADD28        FIN,2
     C           RESTE     IFEQ 0
     C                     ADD  1         FIN,2
     C                     END
     C                     Z-ADDMOIS      I       20
     C           JOUR      COMP FIN,I                51
     C  51                 GOTO ERREUR
     C--------------------------------------------------
**
312831303130313130313031
     C*****************************************************************
     C* $$ CONCAT      ROUTINE DE CONCATENATION DU NOM ET DU PRENOM :
     C*---------------------------------------------------
     E           'Mr'      CAT  PRENOM:2  NP        P = Mise à blanc avant
     C           NP        CAT  NOM:1     NP
      *                            :x = nb de blancs
     C*****************************************************************


|    Changer de couleur
 
      * $$ QCLSCAN      PGM SYSTEME DE RECHERCHE CARACTERES          *
     C*---------------------------------------------------
     C                     CALL 'QCLSCAN'
     C                     PARM           DATA
     C                     PARM           LONSTR  30         LONG DATA
     C                     PARM           POS     30         DEPART
     C                     PARM           PATTER 10          RECHERCHE
     C                     PARM           PATLEN  30         LONG RECH
     C                     PARM           TRANSL  1          TRADUCTION
     C                     PARM           TRIM    1          CADRAGE Gauche
     C                     PARM           WILD    1          JOKER
     C                     PARM           RESULT  30         1 = TROUVE
     C                                                       0 = NON
     C                                                       <0 ERREUR
 
 
 
 
 
 
 


|    Changer de couleur
 
     C*****************************************************************
      * $$ QDCXLATE     PGM SYSTEME DE CONVERSION                    *
     C*---------------------------------------------------
      * EXEMPLE
      * OBJETS SYSTEME DE TYPE *TBL
      * QASCII.QSYS        EBCDIC----> ASCII
      * QEBCDIC.QSYS       ASCII ----> EBCDIC
      * QSYSTRNTBL.QSYS    MINUSCULES standards ----> MAJUSCULES
      *                    (a  z)                       (A Z)
      * QCASE256.QUSRSYS   TOUTES MINUSCULES---> MAJUSCULES
      *                    y compris ç,ù,etc...
     C*---------------------------------------------------
     C                     CALL 'QDCXLATE'
     C                     PARM           LEN     50         LOG ZONE
     C                     PARM           ZONE               <= 32766
     C                     PARM           TBL    10          NOM TABLE
     C                     PARM           TBLLIB 10          BIBLI TAB
 
 
 
 


|    Changer de couleur
     C*****************************************************************
      * $$ SFLMSG       SOUS-FICHIER MESSAGE                         *
     C*---------------------------------------------------
     C* 1/ SDD
     A          R MSGSFL                    SFL SFLMSGRCD(24)
     A            FKEY                      SFLMSGKEY
     A            FPGMQ                     SFLPGMQ
      *
     A          R MSGCTL                    SFLCTL(MSGSFL)
     A                                      SFLSIZ(0002)
     A                                      SFLPAG(0001)
     A                                      SFLDSP
     A                                      SFLINZ
     A                                      OVERLAY
     A            FPGMQ                     SFLPGMQ
     C* 2/ GAP
     C                     MOVEL'*'       FPGMQ           OU NOM-PGM
     C                     WRITEMSGCTL
     C                     EXFMTxxxxxx
     C                     CALL 'CLRM'
     C* 3/ CLP (PGM CLRM)
             RMVMSG     PGMQ(*PRV) CLEAR(*ALL)


|    Changer de couleur
      *==============================================================*
      * $$ SFLDYN  CHARGEMENT SOUS-FICHIER EN DYNAMIQUE              *
      * ----------                                                   *
      *    SOUS-FICHIER ££££££E1 FORMAT DE CONTROLE ££££££C1         *
      *    30=SFLDSP,31=SFLDSPCTL,32=SFLCLR     CD2=ECRAN PRECEDENT, *
      *    55=FIN DE FICHIER (SFLEND)                                *
      *    SI NON FIN DE FICHIER ROLLUP AUTORISE (*IN27)             *
      *==============================================================*    FV0020
     A          R ££££££E1                  SFL
     A          R ££££££C1                  SFLCTL(££££££E1)
     A                                      SFLSIZ(15) SFLPAG(14)
     A  30                                  SFLDSP
     A  31                                  SFLDSPCTL
     A  32                                  SFLCLR
     A  55                                  SFLEND
     A N55                                  ROLLUP(27)
     A
     A            LIGNE          4  0H      SFLRCDNBR
      *-------------------------------------------------------------
     F££££££D CF  E                    WORKSTN
     F                                        RANG  KSFILE ££££££E1
     FFILE    IF  E           K        DISK


|    Changer de couleur
     C                     Z-ADD0         RANG    40
     C                     Z-ADD0         SAVR    40
     C                     Z-ADD0         LIGNE   40
     C                     SETOF                     3031
     C                     SETON                     32
     C                     WRITE££££££C1
     C                     SETOF                     32
     C                     SETON                     31
     C           CLE       SETLLFILE
      *- BOUCLE DU ROLL-UP
B1   C           *IN27     DOUEQ'0'
     C                     Z-ADD0         CNT     20
     C                     Z-ADDSAVR      RANG
      *- BOUCLE DE CHARGEMENT D'UNE PAGE
B2   C           *IN55     DOUEQ'1'
     C           CNT       ORGT 14
     C                     READ FILE                     55
     C           *IN55     IFEQ '0'
     C                     ADD  1         RANG
     C                     ADD  1         CNT
     C                     WRITE££££££E1
     C                     ENDIF


|    Changer de couleur
E2   C                     ENDDO
      *- FIN DE CHARGEMENT D'UNE PAGE                <<
     C           RANG      COMP 0                    30
     C   30                Z-ADDRANG      LIGNE
     C                     Z-ADDRANG      SAVR
B2   C           *INKB     DOUEQ'1'
     C           *IN27     OREQ '1'
      *- AFFICHAGE DU FORMAT DE CONTROLE (SORTIE PAR CDE 2 OU ROLL-UP)
     C                     EXFMT££££££C1
     C                     READC££££££E1                 90
B3   C           *IN90     DOWEQ'0'
B4   C           SEL       IFNE ' '
     C                     MOVE ' '       SEL
     C                     UPDAT££££££E1
     C*                                 ** TRAITEMENT D'UNE SELECTION
E4   C                     ENDIF
     C                     READ££££££E1                  90
E3   C                     ENDDO
E2   C                     ENDDO
E1   C                     ENDDO
      *==============================================================*    FV0020
     C*------------------------------------------------------------





©AF400