Nouveautés RPG/400 V2R10

BoTTom |    Changer de couleur
 
      RPG400/ nouveautés V2 Edition 1.0 
 
 
 Gestion des verrouillages d'enregistrements:
 
 + Lecture sans verrouillage d'enregistrement pour un fichier ouvert en U.
 
    N en colonne 53
                  f1       cod-op f2      zr        H>><<==
     C           CLE       CHAINFORMAT              N90
                  ou       READ FORMAT              N    90
                           etc..
    = lecture seule (pas de mise à jour possible)
                    (pas de verrouillage sauf avec STRCMTCTL LCKLVL(*ALL).)
      évite une double définition du fichier
 
 + Déverrouillage d'un enregistrement avec UNLCK
 
                  f1       cod-op f2      zr        H>><<==
                           UNLCKFICHIER                99
 


|    Changer de couleur
 
 Programmation structurée.
 
 Marquage de fin de groupe
 
          ENDIF    IF
          ENDDO    DO, DOW, DOU
          ENDCS    CAS
          ENDSL    SELEC   (à suivre)
 
          Meilleure lisibilité du pgm
 
          Détection des erreurs plus simple sur une liste de compil
 
          END toujours supporté
 
 Constantes figuratives pour indicateurs
 
          *ON  (= '1')
          *OFF (= '0')   valides sur les tests et les MOVE.
 
 


|    Changer de couleur
 
 Codes de programmation structurée.
 
 SELECT / WHEN / OTHER
       (peu différent du EVALUATE COBOL, ou CAS mais sans sous-programmes)
 
                  f1       cod-op f2      zr        H>><<==
  début de sélection       SELEC
                  F1       WHxx   F2
  1ère sélection           ...        SI vraie, exécution et débranchement
                           ...           après ENDSL
                  F1       WHxx   F2
  2ème sélection           ...        SI vraie, exécution et débranchement
                           ...        après ENDSL(testée si 1ère est fausse)
                           OTHER
   SInon                   ...        SI 1ère et 2ème sélection fausse
                           ...             (OTHER facultatif)
                           ENDSL
 
   WHxx a la même structure qu'un IF (xx = EQ,NE,GT etc...)
        peut être complété par ANDXX ou ORXX.
 


|    Changer de couleur
 
 LEAVE et ITER
 
 Sortie anticipée d'une boucle (DO, DOW, DOU)
 
        LEAVE = sortie de la boucle (saut à l'instruction suivant le END)
 
        ITER  = fin d'une itération (saut à l'instruction END,
                                     ==> retour éventuel en début de boucle
                                         suivant les conditions de fin)
                  f1       cod-op f2      zr        H>><<==
                  *IN03    DOUEQ*ON
              ^            EXFMTIMAGE                  99
              .   *IN99    IFEQ *ON
              .            LEAVE ---------------------
              .            ENDIF                     !
              .   *IN12    IFEQ *ON                  !
              .            ITER ----                 !
              .            ENDIF   !                 !
              .            ...     !                 !
              . . . . . . .ENDDO<--!                 !
                           ...   <-------------------!


|    Changer de couleur
 
 Traitement de chaînes de caractères:
 
 XLATE   recherche et remplacement de caractères
 
         le facteur 1 contient deux arguments séparés par ':'
            1° les caractères à rechercher (constante ou variable)
            2° les caractères de remplacement (idem)
         le facteur 2 contient la chaîne de caractères source
            éventuellement suivie de ':' puis de la position de départ
         la zone résultat contient une variable recevant le résultat
 
   Exemples:
 
                  f1       cod-op f2      zr        H>><<==
                           MOVE '1.234.56'CHAINE
     C            '.':','  XLATECHAINE:3  RESULT    (RESULT = '1.234,56')
 
 
 
 
 


|    Changer de couleur
 
 
     I              'ABCDEFGHIJKLMNOPQRST-C         MA
     I              'UVWXYZ'
     I              'abcdefghijklmnopqrst-C         MI
     I              'uvwxyz'
 
     C                     MOVE 'Alphabet'CHAINE
     C            MI:MA    XLATECHAINE    RESULT    (minuscules/MAJUSCULES)
      *                                   (RESULT = ALPHABET)
     C                     MOVE 'Alphabet'CHAINE
     C            MA:MI    XLATECHAINE    RESULT    (MAJUSCULES/minuscules)
      *                                   (RESULT = alphabet)
 
 Complémentation à blanc (zone résultat) pour SUBST, CAT et XLATE
 
        P en colonne 53    (P comme Padding with blanks)
     C                     MOVE *ALL'-'   RESULT  10       = '----------'
     C                     MOVE 'Alphabet'CHAINE   8
     C            MI:MA    XLATECHAINE    RESULT           = 'ALPHABET--'
     C            MI:MA    XLATECHAINE    RESULT    P      = 'ALPHABET  '
 


|    Changer de couleur
 
 contrôle du contenu d'une variable
 
 CHECK
 
         le facteur 1 contient les caractères autorisés
         le facteur 2 contient la chaîne de caractères à explorer
         la zone résultat peut contenir .une zone numérique
                                         (recevra la position du premier
                                         caractère invalide)
                                        .un tableau (postes numériques)
                                         chaque poste recevra la position
                                         d'un caractère invalide)
      * minuscules imposées
     I              'abcdefghijklmnopqrst-C         MI
     I              'uvwxyz '
     C                     MOVE 'nanteS .'CHAINE
                    MI     CHECKCHAINE    NUM         =  6 (S)
 
                    MI     CHECKCHAINE    TB          TB,1 =  6 (S)
                                                      TB,2 =  8 (.)
                                                      autres postes = 0


|    Changer de couleur
 
 Une reprise est maintenant possible sur le message RPG1218
 
 RPG1218
   Message . . . . :   (R C G S D F) &1 à &2 Allocation impossible d'un
     enregistrement de &5.
   ...
   Que faire . . . : Entrez R pour recommencer l'opération d'entrée
     seulement si le programme a été compilé pour la version 2 minimum)
   ...
       = Relance de l'opération en cause en logique libre.
 
       = Débranchement à *GETIN pour fichier primaire ou secondaire.
 
 La commande DSPPGMREF a été améliorée:
 
       Inclus maintenant les appels de pgm en RPG.
 
 
 
 
 





©AF400