Fenętrage avec SDD

BoTTom |    Changer de couleur
               FENETRAGE SUR AS/400 AVEC LE LANGAGE SDD
 
 1/ Mot-clé niveau format WINDOW = définition d'une fenêtre.
 
    WINDOW(L C ht lg)
 
           L et C = Position de l'angle sup/gauche du cadre de la fenêtre.
                    (chiffre ou &variable appartenant au format)
           ht     = hauteur de la partie utile de la fenêtre
           lg     = largeur de la partie utile de la fenêtre
 
 Exemple: WINDOW(16 25 3 10)
 
               2    2    3    3    4
            15 0    5 !  0    5!   0
            16      ..............
            17      : 1234567890 :  --!
            18      : !        ! :    !> 3 lignes utiles (ht)
            19      : !        ! :  --!
            20      :............:
            21        !<10 col>!
                         (lg)


|    Changer de couleur
 
 Exemple: WINDOW(16 25 3 10)
 
               2    2    3    3    4
            15 0    5 !  0    5!   0
            16      ..............
            17      : 1234567890 :  --!
            18      : !        ! :    !> 3 lignes utiles (ht)
            19      : !        ! :  --!
            20      :............:
            21        !<10 col>!
                         (lg)
 
  les positions 24 et 37 contiennent l'attribut de bordure de fenêtre.
  la position 26 l'attribut de début de texte à l'interieur de la fenêtre.
  la position 39 l'attribut de fond d'écran
 
  L'interieur d'une fenêtre est donc ht x (lg + 2)  ici 3 x 12
  La surface du cadre (ht + 2) x (lg + 4)           ici 5 x 14
 
  La dernière ligne de la fenêtre est RESERVEE aux messages d'erreur.
 


|    Changer de couleur
 
 Si ligne et colonne sont données en tant que variables elles doivent
  appartenir au format:
     A          R FMT                       WINDOW(&LI &CO 3 10)
     A            LI             2  0P
     A            CO             2  0P
 Ou bien:
     A          R FMT                       WINDOW(*DFT 3 10)
                                            (à coté de la position curseur)
Le format définissant la fenetre peut contenir des données constantes ou
 variables, la position de ces données doit être définie à l'INTERIEUR de
 la fenêtre:
     A          R FMT                       WINDOW(16 25 3 10)
     A                                  1  2'Essai'
               2    2    3    3    4
            15 0    5 !  0    5!   0
            16      ..............
            17      :  Essai     : ligne 1
            18      :            :       2
            19      :            :       3
            20      :............:
            21  col   1234567890


|    Changer de couleur
 
 Les fonctions liées aux messages d'erreur sont utilisables
  (message positionné dernière ligne de la fenêtre, tronqué si necéssaire)
 
 ERRSFL et MSGLOC sont ignorés, le clavier n'est pas verrouillé.
 
 Avec WINDOW(L C ht lg *NOMSGLIN )   [V3R10]
 
      les messages sont affichés sur la ligne 24 de l'écran, la dernière
       ligne de la fenêtre devient donc utilisable.
 
 Les mot-clés ALWROL,ASSUME,SFL et USRDFN sont incompatibles
 
 Mais le mot-clé SFLCTL est admis (on peut définir un sous-fichier dans une
                                   fenêtre,sans restriction particulière).
 
     A          R FE                        SFL
     A            ...
     A          R FC                        SFLCTL(FE) WINDOW(16 25 3 10)
 
 Pensez à donner les positions du format d'enregistrement (format SFL)
  à l'interieur de la fenêtre.


|    Changer de couleur
 
 Si une fenêtre doit être affichée en plusieurs fois, un format peut faire
  référence à une fenêtre existante (doit être présente à l'écran lors de
  l'affichage de ce format)
 
     A          R FMT                       WINDOW(16 25 3 20)
     A                                  1  1'Client'
     A            CODCLI         6A  I  1  8
     A  40                                  ERRMSG('client invalide' 40)
     A          R FMT2                      WINDOW(FMT) OVERLAY PROTECT
     A            LIBCLI        15A  O  1  2
 
 
               2    2    3    3    4    4    5          WRITE/READ FMT 
            15 0    5 !  0    5    0    5!   0
            16      ........................
            17      : Client ZZZZZZ        : ligne 1
            18      :                      :       2
            19      :                      :       3
            20      :......................:
            21  col   12345678901234567890
 


|    Changer de couleur
 
 Si une fenêtre doit être affichée en plusieurs fois, un format peut faire
  référence à une fenêtre existante (doit être présente à l'écran lors de
  l'affichage de ce format)
 
     A          R FMT                       WINDOW(16 25 3 20)
     A                                  1  1'Client'
     A            CODCLI         4A  I  1  8
     A  40                                  ERRMSG('client invalide' 40)
     A          R FMT2                      WINDOW(FMT) OVERLAY PROTECT
     A            LIBCLI        15A  O  1  2
 
 
               2    2    3    3    4    4    5          WRITE/READ FMT2 
            15 0    5 !  0    5    0    5!   0
            16      ........................
            17      : Client ZZZZZZ        : ligne 1
            18      :  OOOOOOOOOOOOOOO     :       2
            19      :                      :       3
            20      :......................:
            21  col   12345678901234567890
 


|    Changer de couleur
 Encadrement d'une fenêtre WDWBORDER( (*COLOR xxx)
 
        (*DSPATR HI)                               (*DSPATR RI)
        (*CHAR 'AbCdeFgH')                         (*CHAR '        '))
           AbbbbbbbbC                                  ######### 
           d        e                                  #       # 
           d        e                                  #       # 
           d        e                                  #       # 
           FggggggggH                                  ######### 
 
 Niveau format ou niveau fichier (niveau format prime sur niveau fichier)
 
 Conditionnable, si non indiqué : *COLOR = GRN, pas d'attribut,
                                  encadrement fait avec ... et :
 
 Si ce mot-clé est présent dans un DSPF (même sans WINDOW)
  et que le système affiche une aide UIM (mot-clé HLPPNLGRP)
  le panneau sera encadré avec les indications données par WDWBORDER
 
 WDWTITLE(*TEXT 'titre' (*COLOR xxx) (*DSPATR xx) *CENTER|*LEFT|*RIGHT)
 
  mot-clé V3R10, permettant de définir un titre à votre fenêtre.


|    Changer de couleur
 
 Superpositions de fenêtres.
 
 + RMVWDW niveau format d'une fenêtre.
 
         Demande l'effacement de toutes les fenêtres précédemment affichées.
 
          (par défaut la fenêtre se superpose aux fenêtres existantes)
 
 + USRRSTDSP niveau format d'une fenêtre
 
   Sans ce mot-clé le système sauvegarde l'écran avant affichage de la
    fenêtre et restaure celui-ci après.(fonction identique à RSTDSP)
 
    ==> le système ne peut pas sauvegarder plus de 12 images-écran
 
   Avec ce mot-clé le système ne sauvegarde plus.
 
    ==> c'est au programme de gérer les restaurations d'images,mais il n'y
        plus de limites au nombre de fenêtres pouvant être affichées.
        (plus souple,plus compliqué)
 


|    Changer de couleur
 Affichage d'une fenêtre dans un DSPF indépendant:
 
 Ajouter dans ce fichier un format avec le mot-clé ASSUME
  (non mise à blanc de l'écran à l'OPEN, mais penser au RSTDSP(*YES).)
 
     A          R BIDON                     ASSUME
     A                                  1  2' '
     A          R FMT                       WINDOW(- - - -)
 
     (inutile de traiter le format "BIDON" dans le programme).
 
 Fenêtre et HLPRCD.
 
  les formats d'aide peuvent être gérés en fenêtre
   (avec ASSUME si dans un DSPF indépendant)
 
  Les positions de la fenêtre (ligne/colonne) peuvent être données sous
   forme de variables.
  c'est le système qui les renseignera en affichant (quand c'est possible)
   la fenêtre d'aide une ligne en dessous la position curseur(à gauche ou
   à droite pour ne pas recouvrir la zone de saisie)
 





©AF400