Déclaration de tableaux en RPG (spécif E) et codes opération associés. ----------------------------------------------------------------------- Col ! Signification ! ---------!---------------------------------------------------------------! 6 ! E ! ! ! 11-18 ! Fichier à lire pour remplir le tableau (fichier table) ! ! ! 19-26 ! Fichier dans lequel écrire le tableau en fin de programme ! ! ! 27-32 ! nom de la table (TABxxx) ou du tableau ! ! ! 33-35 ! nombre de postes par enregistrement ! ! ! ! BLANC = tableau chargé en cours de traitement ! ! ! ! xxx + 11-18 renseigné = nbr de poste par enreg du fichier ! ! xxx + 11-18 à blanc = nbr de poste par ligne source ! ! (en fin de pgm après ** en pos 1-2) ! ! ! 36-39 ! nombre de postes dans le tableau ! ! ! |
! ! 40-42 ! nombre de caractères ou de chiffres de chaque poste ! ! ! 43 ! type de poste : blanc = caractère ou décimal étendu ! ! P = packéd ! ! B = binaire ! ! L = numérique précédé de "+" ou "-"(Left) ! ! R = numérique suivit de "+" ou "-"(Right) ! ! ! 44 ! nbr de décimales (si numérique) ! ! ! 45 ! ordre de tri (autorise SORTA: tri d'un tableau) ! ! blanc = pas de critère de tri (SORTA non autorisé) ! ! A = ordre croissant ! ! D = ordre décroissant ! ! ! 46-51 ! nom de table alternée ! ! ! 52-54 ! lg de chaque poste de la table alternée ! 55 ! type de poste de la table alternée (cf pos 43) ! 56 ! nbr de décimales de la table alternée. ! 57 ! ordre de tri pour la table alternée. ! |
La notion de table alternée était utilisée quand le RPG ne connaissait pas les tableaux. LOKUP positionnait le pgm sur un élément de la table, la table alternée étant positionnée sur le même numéro de poste (association code,libellé par ex.) la notion de tableaux alternés peut être utilisée avec des fichiers table. En effet le chargement des tableaux se fait aussi en alternance : chaque enregistrement du fichier table devant alors contenir un poste de chaque tableau. _code__taux___ par ex: soit le fichier TVA contenant CODE-TAUX ! 1 ! 05,50 ! ! 2 ! 18,60 ! ! 3 ! 33,33 ! FTVAFIC IT F 5 DISK !------------! 6 11--18 27--32 35 39 42 46--51 5456 E TVAFIC CODTVA 1 3 1 TXTVA 4 2 |
manipulation: tva,i = table TVA indicée par I *IN,40 = indicateur 40 Codes opération associés : LOKUP recherche d'un argument en tant qu'élement de la table C Z-ADD1 I C 20,6 LOKUPTVA,I 50 * il y a-t-il un taux à 20,6 ? [50 = oui] SORTA : tri d'un tableau , XFOOT : cumul de tous les postes MOVEA mettre une variable aplha dans une table ou inversement C MOVEA'010' *IN,40 40 et 42 = *OFF , 41 = *ON |