Présentation ILE/RPG

BoTTom |    Changer de couleur
           P R E S E N T A T I O N     -      I L E / R P G 
 
 Les spécifications passent à 100 colonnes.
 
             Avec plus de format libre (pas toujours)
 
             Avec une notation par mots-clés (type SDD)
 
SPECIFICATIONS RECONNUES (dans l'ordre)
 
       H  -> paramètres généraux
       F     déclarations des fichiers
       D     déclarations de structures et de variables (cf WORKING STORAGE)
       I     précisions sur les buffers des fichiers lus
       C     codes-opérations
       O     sorties
**
 -> conversions de fichiers
**
 -> séquences alternées (NLS)
**
 -> tableaux chargés à la compilation


|    Changer de couleur
 
Régles en ce qui concerne les noms :
 
 + le premier caractère doit être une lettre de l'alphabet ou $,£,@
 
 + les autres peuvent être en plus '_', '.', ...
 
 + RPG admet aussi bien minuscules que MAJUSCULES (aucune différence)
 
 + 10 CARACTERES MAXI
 
Mots réservés:
 
 ceux de RPG V2R30
 
 plus *ALLX'20'  = répétition d'un caractère héxa
 
      *NULL      = valeur nulle pour un POINTEUR
 
      *OMIT      = paramètre omis lors d'un appel de procédure (API ILE)
 
 


|    Changer de couleur
 
Spécif H
 
 H en colonne 6
 
 7 à 80 : des mots-clés
 
 quelques mots-clés:
 
          ALTSEQ( )   séquence alternée (voir NLS)
 
          CURSYM('x') symbole monétaire
 
          DATEDIT( )  édition de la date
 
          DECEDIT( )  édition des données numériques
 
          DATFMT( )   format des variables DATE
 
          TIMFMT( )   format des variables Heure
 
 


|    Changer de couleur
Spécif F  (pour un fichier externe)
 F en colonne 6
 
 7 à 16 : nom du fichier
 
 17     : usage I,O,U,C
 
 18     : utilisation (par le cycle)   P,S,F
 
 19     : E = fin de fichier anticipée
 
 20     : A = Ajout dans le fichier
 
 21     : séquence pour le matching
 
 22     : F = interne, E = Externe
 
 34     : K = utilisation de la clé
 
 36-42  : unité DISK, PRINTER, WORKSTN
 
 44-80  : mots-clés


|    Changer de couleur
 
 Spécif F de continuation = 7-43 à blanc, 44-80 : Mots-clés
 
 quelques mots-clés :
 
 COMMIT(flag)   Fichier sous contrôle de validation, peut être conditionné
                 (flag, qui est une variable RPG, contenant '0' ou '1')
 
 DATFMT( )      format des variables DATE de ce fichier
 
 EXTIND(*INUx)  ouverture controlée par un switch externe
 
 FORMLEN(xxx)   nbr de lignes/page
 
 FORMOFL(xx)    ligne d'overflow
 
 IGNORE(F1 F2)  liste des formats à ignorer
 
 INCLUDE(F1 F2) liste des formats à considérer (les autres sont ignorés)
 
 
 


|    Changer de couleur
 
 INFDS(nom-ds)  nom de l'INFDS
 
 INFSR(nom-sr)  nom du sous-programme INFSR
 
 OFLIND(*INxx)  indicateur d'overflow
 
 PREFIX(xx)     préfixe à ajouter devant tous les noms de zone venant de
                 ce fichier
 
 RENAME(formatE formatI) renommer un format
 
 SFILE(format rang)      définit la variable n° de rang pour un sous-fichier
 
 USROPN                  fichier ouvert dans le pgm (par ordre OPEN)
 
 
 
 
 
 
 


|    Changer de couleur
 
Spécif D
 
 D en colonne 6
 
 7 à 21 : nom de zone, de tableau, de DS (indentation possible)
 
 22     : E = DS externe
 
 23     : type de DS S = système
                     U = associée à une data area
 
 24-25  : type de définition
                     ' ' = sous-zone de data structure
                     DS  = data structure
                     C   = constante
                     S   = variable élémentaire ou tableau
 
 26-32  : position de début (facultative)
 
 33-39  : position de fin ou longueur
 


|    Changer de couleur
 
 40     : Type : A = caractère
                 G = graphique (DBCS)
                 T = heure
                 Z = horodatage
                 D = date
                 P = packé
                 B = binaire
                 S = numérique étendu
                 * = pointeur (d'adresse ou de procédure)
 
 41-42  : nbr de décimales
 
 44-80  : mots-clés
 
          ASCEND/DESCEND  : ordre de tri pour un tableau
 
          BASED(nom)      : variable adressée par un pointeur
 
          CONST('constante') ou sous la forme 'constante'
 
          CTDATA          : tableau chargé à la compilation


|    Changer de couleur
 
          DIM(x)          : définition d'un tableau (x = nb d'éléments)
 
          OCCURS(x)       : DS à occurences multiples (x = nb d'occurences)
 
          DTAARA(nom)     : nom de la data area (identique à *DTAARA DEFINE)
 
          EXPORT          : variable globale entre procédures
                            (elle est "possédée" par ce pgm)
          IMPORT          : variable globale entre procédures
                            (elle est "possédée" par un autre pgm)
 
          INZ(valeur)     : valeur initiale
 
          LIKE(nom)       : définition d'une variable par rapport à une
                             autre (lg peut être notée sous la forme + xxx)
 
          OVERLAY(nom:pos): sous-zone d'une data structure
 
                          (alternative à l'écriture avec position de début)
 
          PROCPTR         : pointeur de procédure


|    Changer de couleur
 
 exemples :
     DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++
     DINFOCLI          DS
     D nomcli                  1     20
     D adrcli                 21     40
     D vilcli                 41     55
     D cdpst                  56     60   0
 ou
     DINFOCLI          DS
     D nomcli                        20
     D adrcli                        20
     D vilcli                        15
     D cdpst                          5   0
 
     DINFOCLI          DS
     D nomcli                        20
     D adrcli                        20
     D vilcli                        15
     D cdpst                          5   0
     D   dept                         2   0OVERLAY(cdpst)
     D   bdist                        3   0OVERLAY(cdpst:3)


|    Changer de couleur
 
 La spécif I se résume (pour les fichiers externes) à :
 
  l'attribution d'un indicateur d'entrée.
 
  au RENAME des zones d'entrée
 
  à l'association avec des indicateurs Lx ou Mx.
 
 
 la spécif C a deux formats
 
   un format court (facteur 2 à 14 positions).             [SEU = IPC]
 
   un format long  (facteur 2 étendu à 45 positions)       [SEU = IPCX]
 
 cela dépend du code opération
 
 
la spécif O (de moins en moins utilisée est assez comparable à l'existant)
 
 


|    Changer de couleur
 
Spécif C (format court)
 
 C en colonne 6
 
 7-8     : Lx
 
 9-11    : UN (!) indicateur sous la forme Nxx
 
 12-25   : facteur 1
 
 26-35   : code opération sous la forme CODE(O)
 
           O étant une option pouvant prendre les valeurs :
 
             (H) = arrondi                          ....................   
             (N) = lecture sans verrouillage        : en fait tout ce  :   
             (P) = complémentation à blanc          : qui pouvait se   :   
             (D) = manipulation d'une date          : dire en col. 53. :   
             (T) = manipulation d'une heure         :..................:   
             (Z) = manipulation d'un horodatage                            
 


|    Changer de couleur
 36-49   : facteur 2
 
 50-63   : zone résultat
 
 64-68   : lg
 
 69-70   : nb de décimales
 
 71-76   : indicateurs résultats
 
 
Spécif C (format long)
 
 idem jusqu'à 35 , sauf que la seule option possible est (H).
 
36-80    : facteur 2
                               code-op Facteur2+++++++++++++++++++++++++++
 utilisable sous la forme :    EVAL    A = B * (C + 4) / 3
 
                 ou bien  :    IF       (expression logique comprenant: )
                               DOU/DOW  (    AND, OR, NOT, parenthèses  )
                               WHEN     (    = , > , < , >= , <= , <>   )


|    Changer de couleur
 
 Expressions utilisables en facteur 2 étendu:
 
 opérations mathématiques : + , * , / , - , ** (élévation à la puissance)
 
 opération de chaîne/car. : + (concaténation),
 
 plus les fonctions intégrées suivantes :
 
      %ADDR(zone)         renvoie l'adresse (pointeur)
 
      %ELEM(tbl)          renvoie le nombre d'éléments (ou d'occurences)
 
      %PADDR(procédure)   renvoie le pointeur d'une procédure
 
      %SIZE(zone)         donne la taille d'une structure
 
      %SUBST(zone:déb:lg) idem %SST en CL
 
      %TRIM(zone)         supprime les blancs aux deux extrémités
 
      %TRIML/%TRIMR       uniquement les blancs de gauche/ de droite


|    Changer de couleur
 
                 CODES OPERATION modifiés :
 
                   BITOF    ->    BITOFF
                   CHEKR          CHECKR
                   COMIT          COMMIT
                   DEFN           *LIKE   DEFINE
                                  *DTAARA DEFINE
                   DELET          DELETE
                   EXCPT          EXCEPT
                   LOKUP          LOOKUP
                   OCUR           OCCUR
                   REDPE          READPE
                   RETRN          RETURN
                   SELEC          SELECT
                   UNLCK          UNLOCK
                   UPDAT          UPDATE
                   WHxx           WHENxx
 
                 CODE OPERATION supprimé :
 
                   FREE


|    Changer de couleur
 
                 NOUVEAUX CODES OPERATION :
 
 EVAL(H) avec facteur 2 étendu :
 
         EVAL           A = B * (C + 2)
  ou
         EVAL           Msg = 'BONJOUR' + %SUBST(nom:1:10)
 
CALLB    appel à une procédure liée
 
         (même syntaxe que le CALL)
 
SUPPORT DATES et HEURES
 
ADDDUR       ajoute une durée à une date
SUBDUR       retire une durée à une date
              ou donne la différence entre dates
EXTRCT       extrait une partie d'une date ou d'une heure
TEST(D/H/Z)  teste la validité d'une date/heure/horodatage
MOVE         supporte les variables Date/Heure et FAIT LES CONVERSIONS
              DE/VERS ALPHA ou NUMERIQUE .





©AF400