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) |
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. |
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 |
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. |
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 |
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 |
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. |
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é) |
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) |