Cours gap sur les sorties exceptionnelles

BoTTom |    Changer de couleur
 
                   ---------------------------
                   ! SORTIES EXCEPTIONNELLES !
                   ---------------------------
 
 
Pour faciliter les sorties sur les fichiers d'impression en description
interne il est souvent nécessaire de passer outre le cycle GAP, et
d'ordonner la sortie d'une ligne lors du traitement (spécif C).
 
Cette technique est très employée dans les entreprises, elle permet
une moindre utilisation des indicateurs, et surtout de faciliter la
lecture du programme.
 
Nous allons découvrir cette nouvelle technique par 1 exemple.
 Reprenons l'exemple sur la liste des produits.
 Le programme que vous avez écrit doit ressembler à celui ci-dessous:
 Ce programme utilise la description externe pour le fichier en entrée.
 
     FPRODUIT IP  E           K        DISK
     FQSYSPRT O   F     198            PRINTER
     C           PRQTE     MULT PRPU      PRMT    82H


|    Changer de couleur
     C                     ADD  PRMT      PRTOMT 102
     OQSYSPRT D 2     N1P
     O                         PRNO       7
     O                         PRLIB     29
     O                         PRQTE     37
     O                         PRPU  2   45
     O                         PRMT  2B  60
     O        T 3      LR
     O                                   46 'TOTAL STOCK :'
     O                         PRTOMT2B  60
 
Réécrivons ce programme avec les sorties exceptionnelles pour les
 2 lignes à sortir.
 
 
     FPRODUIT IP  E           K        DISK
     FQSYSPRT O   F     198            PRINTER
     C           PRQTE     MULT PRPU      PRMT    82H
     C                     ADD  PRMT      PRTOMT 102
     C                     EXCPTDETAIL
     CLR                   EXCPTTOTLR
     OQSYSPRT E 2              DETAIL


|    Changer de couleur
     O                         PRNO       7
     O                         PRLIB     29
     O                         PRQTE     37
     O                         PRPU  2   45
     O                         PRMT  2B  60
     O        E 3              TOTLR
     O                                   46 'TOTAL STOCK :'
     O                         PRTOMT2B  60
 
 Ce type de sortie entraine de nouvelles ligne C.
 
 Nous allons commencer par expliquer les O.
 
     OQSYSPRT E 2              DETAIL
              !                  !
              !                  !
              !     ------------------------------------
              !     Identifie la sortie exceptionnelle
              !     Lors de l'exécution de l'instruction
              !     EXCPT on indiquera cet identificateur
              !     et il ne sortira que les O ayant
              !     un E et cet identificateur sinon il


|    Changer de couleur
              !     ecrirait toutes les O ayant un E
              !     et on conditionnerait leur sortie par
              !     un indicateur.
              !
  ----------------------
  Ce E signifie que la
  sortie ne sera pas fait
  par le cycle GAP mais
  sera commandé par
  l'instruction EXCPT.
 
 
     O        E 3              TOTLR
 
     Autre sortie exceptionnelle ayant pour nom TOTLR
 
  Expliquons les nouvelles lignes C.
 
 
     C                     EXCPTDETAIL
                             !    !
                             !    !


|    Changer de couleur
                             !-------------------
                             !Identifie les E à
                             !écrire.
                             !
                             !
                             !
                             !
             -------------------------
             Nouvelle instruction qui
             indique l'écriture
             immédiate des O ayant un
             E
 
  Dans cet exemple il ne sortira que les sorties exceptionnelles ayant
  comme identificateur DETAIL.
 
 
 
     CLR                   EXCPTTOTLR
 
      Meme principe que précédemment mais cette fois-ci, il ne sortira
      que les lignes exceptionnelles ayant pour nom TOTLR et cette


|    Changer de couleur
      instruction ne sera exécuté qu'en traitement total avec
      l'indicateur LR en fonction.
 
 
Nous pouvons utiliser les sorties exceptionnelles sans identificateur
mais cela nous oblige à conditionner les O exceptionnelles, sinon à
chaque ordre EXCPT il les sortirait toutes.
 
Voici le même programme sans identificateur de sortie exceptionnelles.
 
     FPRODUIT IP  E           K        DISK
     FQSYSPRT O   F     198            PRINTER
     C           PRQTE     MULT PRPU      PRMT    82H
     C                     ADD  PRMT      PRTOMT 102
     C                     EXCPT
     CLR                   EXCPT
     OQSYSPRT E 2     NLR
     O                         PRNO       7
     O                         PRLIB     29
     O                         PRQTE     37
     O                         PRPU  2   45
     O                         PRMT  2B  60


|    Changer de couleur
     O        E 3      LR
     O                                   46 'TOTAL STOCK :'
     O                         PRTOMT2B  60
 
    Expliquons la ligne suivante:
 
     OQSYSPRT E 2     NLR
 
     Cette sortie doit être effectuée si ce n'est pas la fin du fichier
 
 
    Notre exemple n'est pas très compliqué nous pourrions utiliser
    soit l'une ou l'autre solution, mais je vous conseille dans la
    mesure du possible d'identifier vos sorties exceptionnelles.
 
 




©AF400