cours gap sur les spécif I code identif. enreg.

BoTTom |    Changer de couleur
 
               SPECIFICATION D'ENTREE COLONNE 21 A 41
               --------------------------------------
 
 
 
1 But de ces colonnes
---------------------
 
  Servent à identifier un enregistrement grâce à des caractères
  contenus dans cet enregistrement.
 
  Prenons un exemple.
 
  Supposons le fichier des commandes (contenant 3 parties)
                  - L'en-tête qui va nous indiquer le numéro de la commande
                    et des informations sur le client.
 
                  - Le corps qui reçoit les informations sur les articles
                    commandés
 
                  - Le pied qui indiquera les montants HT et TTC.


|    Changer de couleur
 
     1)  EN-TETE
 
     ! Num. com. ! Num. client ! date com. ! date liv. ! mode fac.! mode livr.!
     --------------------------------------------------------------------------
 
     2)  CORPS
 
     ! num art.! quantite ! P.U. ! montant ! TVA !
     ---------------------------------------------
 
     3)  PIED
 
     ! momt. HT ! mont TTC !T.TVA!
     -----------------------------
 
 
 
     Cela signifiera que nous aurons un fichier qui aura pour une
     commande 1 enregistrement pour l'en-tête, autant d'enregistrements
     que d'articles pour le corps et un enregistrement pour le pied.
 


|    Changer de couleur
     Supposons la commande suivante
     ----------------------------------------------------------
     ! Commande : 2432                Sociéte XXXX            !
     !                                                        !
     ! Client :   4518                                        !
     !         nom société                                    !
     !                                                        !
     ! Facturation : A         Date commande : xx.xx.xx       !
     ! Livraison   : O         Date livraison: yy.yy.yy       !
     !                                                        !
     !--------------------------------------------------------!
     ! Article   ! libellé     ! Qte !  P.U. ! Montant ! TVA  !
     !--------------------------------------------------------!
     !   510     ! clou        ! 10  !  1,00 ! 10,00   ! 7 %  !
     !   215     ! vis         ! 20  !  1,50 ! 30,00   ! 7 %  !
     !   318     ! ecrou       ! 15  !  3,00 ! 45,00   ! 7 %  !
     !           !             !     !       !         !      !
     !--------------------------------------------------------!
     ! Montant H.T.  85,00                                    !
     ! TVA            5,95                                    !
     ! Montant TTC   90,95                                    !
     !--------------------------------------------------------!


|    Changer de couleur
 
 
 Nous devrons avoir dans notre fichier les enregistrements qui suivent
 
     !  2432     !    4518     ! 210987    ! 101087    !    A     !    O      !
     --------------------------------------------------------------------------
     !   510   !   10     !  100 !    1000 ! 700 !                            !
     --------------------------------------------------------------------------
     !   215   !   20     !  150 !    3000 ! 700 !                            !
     --------------------------------------------------------------------------
     !   318   !   15     !  300 !    4500 ! 700 !                            !
     --------------------------------------------------------------------------
     !    8500  !    9095  !  595!                                            !
     --------------------------------------------------------------------------
 
 
 
 
 
 
 
 


|    Changer de couleur
 
 
 Une des solutions possibles est de placer en début d'enregistrement un code
  permettant d'identifier le type d'enregistrement.
 
      ! E !  2432     !    4518     ! 210987    ! 101087    !    A     !    O
      --------------------------------------------------------------------------
      ! D !   510   !   10     !  100 !    1000 ! 700 !
      --------------------------------------------------------------------------
      ! D !   215   !   20     !  150 !    3000 ! 700 !
      --------------------------------------------------------------------------
      ! D !   318   !   15     !  300 !    4500 ! 700 !
      --------------------------------------------------------------------------
      ! P !    8500  !    9095  !  595!
      --------------------------------------------------------------------------
 
 
 
 
 
 
 


|    Changer de couleur
                       Position à tester
                       ! ------------------C=caractère
                       ! !--------------------------------le caractère
                       v vv                                à tester
     ICOMMAND NS  01   1 CE  (en résumé: si en pos 1 il y a le car "E"). 
     I                                        2   50NOCDE
     I                                        6   90NOCLI
     I                                       10  150DATCDE
     I                                       16  210DATLIV
     I                                       22  22 TYPFAC
     I                                       23  23 TYPLIV
 
     ICOMMAND NS  02   1 CD
     I                                        2   40CODART
     I                                        5   60QTECDE
     I                                        7   92PU
     I                                       10  132MT
     I                                       14  172TXTVA
     ICOMMAND NS  03   1 CP
     I                                        2   62TOTHT
     I                                        7  112TOTTVA
     I                                       12  162TOTTTC


|    Changer de couleur
 
  Mais la solution "purement AS/400" serait de faire trois fichiers
   physiques différents.
 
        1/ fichier des en-têtes (ENTCDEP1)
                   R ENTCDEF1
                     NOCDE      R
                      ...
        2/ fichier des lignes de commande
                     NOCDE      R
        3/ fichier pied de commande (ou faire les calculs à l'impression !)
                     NOCDE      R
 Puis un fichier logique multiformat: (multil1)
 
                  R ENTCDEF1          PFILE(ENTCDEP1)
                  K NOCDE
                  R LIGCDEF1          PFILE(LIGCDEP1)
                  K NOCDE
                  R PIECDEF1          PFILE(PIECDEP1)
                  K NOCDE
 
 


|    Changer de couleur
 
 Utilisation de ce fichier en RPG/400.
 
     FMULTIL1 IF  E           K        DISK
     IENTCDEF1    01
     ILIGCDEF1    02
     IPIECDEF1    03
 
 Une seule spécif F (le fichier logique)
 
 Une spécif I par FORMAT, permettant d'associer à chaque format un
  indicateur d'entrée.
 
 Le traitement peut donc être RIGOUREUSEMENT identique.
 




©AF400