La spécif F ILE/RPG-IV

BoTTom |    Changer de couleur
 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)
 


|    Changer de couleur
! 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
------------------------------------------------------------------------------


|    Changer de couleur
 
 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 : 


|    Changer de couleur
 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:)


|    Changer de couleur
 
 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
 


|    Changer de couleur
 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.


|    Changer de couleur
 
 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')
 


|    Changer de couleur
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.


|    Changer de couleur
 
 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...





©AF400