Pgm de mise à jour avec gestion des verrouillages

BoTTom |
     H DATEDIT(*DMY)
     FDSPI11    CF   E             WORKSTN
     FFICH1L0   UF   E           K DISK
     FFICH2P1   IF   E           K DISK
     FFICH1PV   UF A E           K DISK
     D M1              C                   CONST('ENREGISTREMENT VERRO-
     D                                     UILLÉ PAR')
     D M2              C                   CONST('LE :')
     D                SDS
     D  SDSECR               244    253
     D DATC            DS
     D  DATVER                        6  0 INZ
     D error           S               n
      * PGM PRINCIPAL (BOUCLE SUR IMAGE 1)
      * ==================================
     C                   WRITE     TITRE
     C                   EXFMT     F1
     C                   DOW       not *in03
     C                   EXSR      TRTF1
     C                   EXFMT     F1
     C                   ENDDO
     C                   MOVE      *ON           *INLR
      * DEBUT DES SOUS PROGRAMMES
      * =========================
     C     TRTF1         BEGSR
     C     CLE           CHAIN     FICH1FV                            65
     C                   IF        not *in65
      * ENREGISTREMENT VERROUILLÉ
     C                   UNLOCK    FICH1PV
     c                   eval      msg = m1 + ' ' + %trim(ecran) + ' ' +
     c                                   m2 + ' ' + datc
     C                   eval      *in60 = *on
     C                   ELSE
      * LECTURE SEULE  --------V
     C     CLE           CHAIN(N)  FICH1F1                            50
     C                   IF        not *in50
     C                   MOVE      SDSECR        ECRAN
     C                   Z-ADD     UDATE         DATVER
     C                   WRITE     FICH1FV
     C                   EXSR      TRTF2
     C     CLE           DELETE    FICH1FV                            90
     C                   ENDIF
     C                   ENDIF
     C                   ENDSR


|
      *
     C     TRTF2         BEGSR
     C                   DOU       error = *off
     C                   EXFMT     F2
     C                   SELECT
     C                   WHEN      *in12
     C                   LEAVE
     C                   OTHER
     C                   EXSR      CTLF2
     C                   IF        not error
      * ACCES AU FICHIER EN MISE   JOUR (ON PERD LA SAISIE UTILISATEUR)
     C     CLE           CHAIN     FICH1F1                            50
      * RELECTURE DU BUFFER ECRAN (RETROUVE MISES A JOUR UTILISATEUR)
      * (SANS ACTION CLAVIER CAR "RTNDTA" DANS LE DSPF)
     C                   READ      F2                                     90
      * MISE A JOUR FICHIER ET DEVERROUILLAGE
     C                   UPDATE    FICH1F1
     C                   ENDIF
     C                   ENDSL
     C                   ENDDO
     C                   ENDSR
      *
     C     CTLF2         BEGSR
     C                   eval      error = *off
      * CONTROLE DU CODE
     C     CODE          CHAIN     FICH2F1                            51
     C                   IF        *in51
     C                   eval      error = *on
     C                   ENDIF
      * AUTRES CONTROLES DE VALIDITE
     C*                  IF   .....
     C*                  eval      error = *on
     C*                  eval      *inxx = *on
     C                   ENDSR




©AF400