Accueil du site > Les articles > Comment faire entrer 512 caractères dans 80 caractères...
Version à imprimer Enregistrer au format PDF

Comment faire entrer 512 caractères dans 80 caractères...

lundi 9 janvier 2006, par Grégory Jarrige Visites  2083

Comment faire entrer une variable de 512 caractères dans un écran composé de lignes de 80 caractères ? C’est le genre de truc qu’on utilise une fois tous les 2 ou 3 ans, et bien sûr, à chaque fois on a tout oublié et il faut se replonger dans la doc.


A noter que le truc ci-dessous est valable aussi bien pour des écrans 80 que 132 colonnes, puisque, comme je vous le disais, la zone que je veux insérer dans mon écran fait 512 caractères.

Pas de calcul savant à faire, le truc est déconcertant de simplicité, quand on se souvient de la méthode.

On commence par créer une zone de 79 caractères sur l’écran qu’on est en train de concevoir au travers du maquetteur Adelia. Dans mon exemple, j’ai appelé cette zone ZWCMD au niveau du code DDS, et ZW_CMD au niveau du mot directeur. Vous l’avez peut être deviné, je veux gérer une ligne de commande, si si... mais surtout je veux stocker cette ligne de commande dans un fichier pour la réutiliser plus tard. Ce fichier s’appelle PLASBM, on va en reparler dans les lignes qui suivent.

Maintenant, j’ai besoin que ma zone de 79 caractères fasse référence à une zone fichier qui fait elle 512 caractères. Pour cela, toujours dans le maquetteur Adelia, je presse la touche "F10=Variables", pour faire apparaître, devinez quoi ??

Dans la liste des variable, j’identifie ma variable ZW_CMD, et je presse la touche F11 ce qui a pour effet d’afficher les informations complémentaires du sous-fichier. Parmi ces informations complémentaires, on trouve la zone intitulée "référence". C’est dans cette zone, que je vais indiquer le nom DDS de la zone fichier à laquelle ma zone écran va faire référence. Dans mon exemple, la zone référence en question s’appellera "S1JOBCMD". Cette zone provient du fichier PLASBM, donc il me reste à préciser quelque part que j’utilise ce fichier comme référence pour récupérer la structure de ma zone de 512 caractères.

Ce quelque part se situe dans la partie du maquetteur intitulée "Caractéristiques générales". On y accède par la touche F8 dans Adelia/400. Dans Adelia IWS, ce doit être quelque part dans les menus mais j’ai oublié où.

Quand vous êtes dans les "caractéristiques générales", pressez la touche "F10=Autres paramètres". A ce stade, vous allez pouvoir entrer votre fichier de référence de la façon suivante :

Indicateur    Fonction            
  __         REF(PLASBM)________________          

Voila, rien d’autre à faire, si ce n’est finaliser et compiler votre programme. Votre zone de 79 caractères en maquettage fera 512 caractères sur le programme lors de exécution, soit à peu près 6 lignes et demi. Donc attention à bien laisser la place nécessaire pour éviter tout chevauchement de zone, qui pourrait entrainer le plantage de votre compilation de programme.

Petite information supplémentaire pour les développeurs RPG, ce que j’ai indiqué ci-dessus en Adelia, se traduit en RPG, au niveau du source du DSPF, par les 2 lignes ci-dessous :

A                                      REF(PLASBM)        
A            ZWCMD     R        B 13  2REFFLD(S1JOBCMD  )