Dates et DSPF en V4R20

BoTTom |    Changer de couleur
 
Quelques nouveautés concernant les dates sur les DSPF en V4R20
 
 
1/ les types L (date) T (time) Z (timestamp) sont enfin reconnus.
 
   - sur les DSPF
 
   - sur les PRTF
 
   aucun contrôle n'est réalisé sur la donnée recue par le DSPF
   (il est prêt à afficher 01/13/98)
 
   les données sont contrôlées A LA SAISIE
 
   - si le MDT est ON (comme COMP, RANGE, VALUES)
 
     c'est à dire s'il y a eu saisie
     si vous indiquez DSPATR(MDT)
 
   le message d'erreur est le CPD406A qui prévoit 13 raisons possibles
 


|    Changer de couleur
 
 Message . . . . :   La valeur de zone n'est pas une date admise. Code raiso
   &1.
 Cause . . . . . : La valeur indiquée n'est pas une date admise. Recherchez
   cause de l'échec dans les codes retour suivants.
 
  1 - Un caractère de la zone n'est pas admis.
  2 - Le séparateur spécifié n'est pas admis.
  3 - Trop de chiffres ont été indiqués.
  4 - Trop peu de chiffres ont été indiqués.
  5 - Trop de séparateurs ont été indiqués.
  6 - Trop peu de séparateurs ont été indiqués.
  7 - Le jour indiqué n'est pas admis.
  8 - Le mois indiqué n'est pas admis.
  9 - Le jour et le mois indiqués ne sont pas admis.
 10 - L'année indiquée n'est pas admise.
 11 - Le jour et l'année indiqués ne sont pas admis.
 12 - Le mois et l'année indiqués ne sont pas admis.
 13 - Le jour, le mois et l'année indiqués ne sont pas admis.
 
 
 


|    Changer de couleur
 
 les séparateurs ne sont PAS obligatoires !
 
 les zéros [à gauche] non plus
 
     pour le 1er Février 1998 on admet donc :  01/02/98
                                               010298
                                               10298
                                               1/2/98
 
 
2/ les mots-clés DATFMT [et DATSEP pour les formats *YMD, *DMY, *MDY)
    sont admis.
 
 
   si vous n'indiquez rien le format par défaut est *ISO
 
 
   on admet aussi DATFMT(*JOB) qui affiche (et accepte) une date au
    format du job en cours, mais transmet TOUJOURS au format *ISO
 
 


|    Changer de couleur
 
 
3/ un nouveau mot-clé MAPVAL est implémenté afin d'établir des conversions
     entre valeur affichée et valeur transmise au pgm.
 
 
     MAPVAL( (valeur-pgm1 valeur-écran1)
             (valeur-pgm2 valeur-écran2) ...)  jusqu'à 100 correspondances
 
 
     avec comme valeurs particulières
 
          *BLANK on affiche que des blancs
 
          *CUR   valeur en cours (date en cours ou heure en cours, ...)
                  transmise au pgm.
 
exemple :        MAPVAL(('01/01/40' *BLANK))
 
                  si le pgm contient 01/01/40 j'affiche des blancs
             ET   si l'utilisateurs entre des blancs j'envoi 01/01/40
 


|    Changer de couleur
 
4/ le mot-clé DATE admet maintenant des paramètres
 
              DATE(*JOB | *SYS
 
                   *job = la date du job (on peut modifier par chgjob)
 
                          *sys la date système (QDATE)
 
                   *Y | *YY)
 
                   *Y = année sur 2
                        *YY = année sur 4
 
 et enfin un nouvel edit-code W pour les dates sour la forme YYYY/MM/JJ
 
          l'edit-code Y admet aussi les années sur 8 mais en JJ/MM/YYYY
 
 
 pour des dates sur 6 dt 0 , ces deux edit-codes sont identiques.
 
 


|    Changer de couleur
 
exemple de source
                                        2  4DATE(*YY) EDTCDE(Y)
                                        4  4DATE(*YY) EDTCDE(W)
 
 
     A            FLD001          L  B  8 22DATFMT(*DMY) DATSEP('/')
 
     A            FLD002          L  B 10 22DATFMT(*EUR)
 
     A            FLD003          L  B 12 22DATFMT(*JOB)
 
     A            FLD004          L  B 15 42DATFMT(*DMY) DATSEP('/')
     A                                      MAPVAL(('01/01/40' *BLANK))
 
     A            FLD005          L  B 17 42DATFMT(*DMY) DATSEP('/')
     A                                      MAPVAL((*CUR *BLANK))
 
 
 
 qui affiche :
 


|    Changer de couleur
 
 
   date edtcde(y) 13/08/1998  
 
   date edtcde(w) 1308/19/98 
 
 
                                                  valeurs recues par le pgm 
                                                  |                       |
   date format *dmy   01/01/40                    |     01/01/40          |
                                                  |                       |
   date format *eur   01.01.1994                  |     01.01.1994        |
                                                  |                       |
   date format *job   01/01/40                    |     1940-01-01        |
                                                  |                       |
                                                  |                       |
   date avec mapval('01/01/40' *blank)            |     01/01/40          |
                                                  |                       |
   date avec mapval(*cur *blank)                  |     13/08/98          |
                                                  |                       |
                                                  |                       | 
 





©AF400