Déclaration de fichiers en RPG-IV (spécif F) ! RPG-IV ! description Externe ! commentaires !---------!----------------------------!----------------------------------- ! 6 ! F ! F ! 7-16 ! nom du fichier externe ! physique ou logique ! ! ! ! 17 ! type d'ouverture ! ! ! I input ! lecture ! ! O output ! écriture ! ! U update ! lecture + mise à jour + delete ! ! C combiné (I + O) ! pour les écrans ! ! ! ! ! ! ! 18 ! type de traitement RPG ! ! ! P = primaire ! lecture par le cycle GAP ! ! S = secondaire ! idem ! ! ! ! ! F = Full procédure ! lecture par le programmeur ! ! ! ! 19 ! E= fin de fichier ! A ignorer (Cycle) |
! RPG-IV ! description Externe ! commentaires !---------!----------------------------!----------------------------------- ! 20 ! Ajout d'enregistrement ! |17 20 | ordres valides | ! ! A = ajout ! | I | read | ! ! ! | I A | read/write | ! ! ! | U | read,update,delete | ! ! ! | U A | tous | ! ! ! ! 21 ! séquence : A ou D ! A ignorer (Cycle) ! ! ! ! 22 ! format E (externe) ! E (externe) ! ! ! ! 34 ! BLANC sans clé ! lecture sur le N° de rang ! ! K avec clé . ! lecture sur la clé ! ! ! ! 36-42 ! Unité ! ! ! DISK = fichier B de D. ! physiques ou logiques ! ! PRINTER = impression ! PRTF ! ! WORKSTN = écran ! DSPF ! ! ! ! 44-80 ! Mots-clés ! idem ------------------------------------------------------------------------------ |
en format libre DCL-F nom-de-fichier UNITE [keyed] USAGE( ) autre-mots-clés; nom-de-fichier peut faire plus de 10c, EXTDESC donne le nom réel UNITE DISK utilisation/dft *INPUT PRINTER utilisation/dft *OUTPUT WORKSTN utilisation/dft *INPUT:*OUTPUT KEYED, pour un fichier DISK, accès par clé (colonne 34) USAGE *INPUT accès en lecture uniquement *OUTPUT accès en écriture *UPDATE écriture et mise à jour (n'implique pas *DELETE) *DELETE suppression des enregistrements lus plusieurs valeurs peuvent être saisies, séparées par : |
Quelques mots-clés RPG-IV COMMIT ou COMMIT(&flag) - le fichier est sous contrôle de validation (STRCMTCTL doit être actif) tous les ordres d'E/S sont en attente de validation jusqu'à COMMIT ou ROLBK (en cas de'erreur il y a un ROLBK par défaut) DATFMT(format<séparateur>) - indique le format pour les dates de ce fichier (si le format est *YMD,*DMY,*MDY,*JUL, le séparateur peut être indiqué) exemple DATFMT(*EUR) - DATFMT(*YMD/) TIMFMT(format<séparateur>) - indique le format pour les heures de ce fichier (si le format est *HMS, le séparateur peut être indiqué) exemple TIMFMT(*EUR) - DATFMT(*HMS:) |
FORMLEN(xxx) nbr de lignes par page pour fichier PRINTER FORMOFL(xxx) dernière ligne logique " " " OFLIND(*INxx) indicateur associé à la fin de page " " " (en V5R10, ce peut être une variable de type N) IGNORE(F1:F2:F3...) formats à ignorer INCLUDE(F1:F2...) formats à traiter (les autres sont ignorés) RENAME(fmt1 : ftm2) fmt1 est renommé fmt2 POUR ce Programme. INFDS(nom-DS) - indique la data structure contenant des informations en retour INFSR(nom-souspgm) - indique le nom du sous programme appellé automatiquement en cas d'erreur sur ce fichier |
PREFIX(xx) - Indique un préfixe devant être ajouté devant tous les noms de zone du fichier externe, le point étant admis uniquement depuis la V5R10. (ATTENTION, le préfixe plus le nom ne doivent pas dépasser 10 c.) en V3R20/R60 : PREFIX(xx:y) y indique que xx remplace les y premiers car. par exemple, PREFIX(W:3) remplace CDEQTE par WQTE. SFILE(format:rang) - associe à un enregistrement de sous-fichier la variable n° de rang. USROPN - indique que ce fichier ne sera pas ouvert par le cycle (OPEN en spécif C) INDDS(nom-DS) (V4R20) - associe à un fichier avec INDARA une DS contenant des variables de type indicateur (N).Cette DS est utilisée A LA PLACE des 99 indicateurs RPG. |
EXTFILE, EXTMBR mot-clés en spécif F permettant de fournir le nom réel du fichier en traitement (évite des OVRDBF). EXTFILE(nom) le nom peut être une constante ou une variable (nom simple ou qualifié) si le fichier est ouvert par le RPG, la variable soit alors être renseignée : - soit par le mot-clé INZ (en spécif D) - soit être un paramètre recu. - soit une variable globale sinon, le fichier doit être ouvert par le pgm (USROPN) EXTMBR(nom-du-membre ou *FIRST ou *ALL) *FIRST et *ALL doivent être indiqués en quotes ('*FIRST') |
V6R10 ----- EXTDESC() permettant d'indiquer le nom du fichier pour le compilateur. -> cela permet de compiler avec un fichier qui n'est pas dans *LIBL EXTDESC('BDVIN1/VINS') le paramètre EXTFILE(), admet maintenant EXTFILE(*EXTDESC) demandant à ce que le nom réel à l'exécution soit celui de EXTDESC LIKEFILE , définition d'un fichier comme un autre attention les I/O doivent être réalisées par le biais de structures (DS) TEMPLATE définition d'un fichier qui sert uniquement de modèle (pour LIKEFILE) V7R10 ----- ALIAS pour un fichier avec des zones à nom long (Alias SDD ou CREATE TABLE) c'est ce nom long qui est utilisé dans le progamme RPG. |
exemples de spécif F: .....F*ilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++ FFICH1P1 IF E K DISK Ou dcl-f fich1p1 disk keyed; FFICH1P2 UF A E K DISK PREFIX(F1) dcl-f ECRAN01 WORKSTN INFDS(INFODS) SFILE(SFL : RANG); FECRAN02 CF E WORKSTN INDDS(indic) .../... Dindic DS 99 D sortie N overlay(indic:3) D retour N overlay(indic:12) D sflclr N overlay(indic:40) etc... |