Pgm : liste via sous-fichier avec option

BoTTom |
      *
      * sous fichier avec zone d'option (2 = modifier , 5 = afficher)
      *
     FDSPI09    CF   E             WORKSTN
     F                                     SFILE(SFL:RANG)
     FFICH1L1   IF   E           K DISK
     FFICH2P1   IF   E           K DISK
     D  rang           S              4  0
      * PGM PRINCIPAL (BOUCLE SUR IMAGE 1)
      * ==================================
     C                   WRITE     TITRE
     C                   EXFMT     F1
     C                   DOW       *in03
     C                   EXSR      TRTF1
     C                   EXFMT     F1
     C                   ENDDO
     C                   MOVE      *ON           *INLR
      * DEBUT DES SOUS PROGRAMMES
      * =========================
     C     TRTF1         BEGSR
     C     CODE          CHAIN     FICH1F1                            50
     C                   IF        not *in50
     C     CODE          CHAIN     FICH2F1
     C                   EXSR      RAZSF
 
     C                   DOU       *in90
     C                   EXSR      ECRSF
     C     CODE          READE     FICH1F1                                90
     C                   ENDDO
 
     C                   WRITE     PIED
 
     C                   DOU       *in12
     C                   EXFMT     CTL
     C                   EXSR      LECSF
     C                   ENDDO
 
     C                   ENDIF
     C                   ENDSR
      *
     C     RAZSF         BEGSR
     C                   eval      *in30 = *off
     C                   eval      *in31 = *off
     C                   WRITE     CTL


|
     C                   eval      *in31 = *on
     C                   eval      rang  = 0
     C                   ENDSR
      *
     C     ECRSF         BEGSR
     C                   eval      rang = rang + 1
     C                   WRITE     SFL
     C                   eval      *IN30 = *on
     C                   ENDSR
      *
     C     LECSF         BEGSR
     C                   READC     SFL
     C                   DOW       not %eof
     C                   IF        option <> ' '
     C     OPTION        CASEQ     '2'           OP2SR
     C     OPTION        CASEQ     '5'           OP5SR
     C                   ENDCS
     C                   eval      OPTION = ' '
     C                   UPDATE    SFL
     C                   ENDIF
     C                   READC     SFL
     C                   ENDDO
     C                   ENDSR
      *
      *   les options sont traitées par des programmes à part  (==> CALL)
      *
     C     OP2SR         BEGSR
     C                   CALL      'RPGOP2'
     C                   PARM                    CLE
     C                   ENDSR
      *
     C     OP5SR         BEGSR
     C                   CALL      'RPGOP5'
     C                   PARM                    CLE
     C                   ENDSR




©AF400