Wiki source code of Fenêtre affichable par dessus écrans de taille 24 * 80 et 27 * 132
Last modified by Jean-Claude ALLETRU on 2016/06/02 10:29
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | ((( | ||
| 2 | == Problème == | ||
| 3 | ))) | ||
| 4 | |||
| 5 | On a un programme gérant une fenêtre (fenêtre Adélia ou fenêtre IBM) qui peut être appelé par des programmes gérant des écrans de taille 24 * 80 mais aussi par des programmes gérant des écrans de taille 27 * 132. Si la fenêtre est définie avec une taille 24 * 80 on a une erreur lorsqu'elle s'affiche par dessus un écran de taille 27 *132, et si elle est définie avec une taille 27 * 132 on a une erreur lorsqu'elle s'affiche par dessus un écran de taille 24 * 80. | ||
| 6 | ((( | ||
| 7 | == Solution == | ||
| 8 | ))) | ||
| 9 | |||
| 10 | Tout d'abord pour éviter l'erreur d'exécution, il faut définir la fenêtre comme étant de taille "Mixte" (cela se fait via l'option "Caractéristiques générales" du menu "Programme" du GEE). | ||
| 11 | En faisant cela on n'a plus d'erreur d’exécution, mais lorsque la fenêtre s'affiche par dessus un écran de taille 27 *132, elle efface l'écran sur lequel elle s'affiche. | ||
| 12 | * **Cas des fenêtres de type "fenêtre Adélia" qui ont un sous-fichier :** | ||
| 13 | (% style="line-height: 1.42857;" %) Dans ce cas il n'y pas d'autre amélioration possible.(%%) | ||
| 14 | |||
| 15 | * (% style="line-height: 1.42857;" %)**Cas des fenêtres Adélia sans sous-fichier ou des fenêtres IBM (avec ou sans sous-fichier)** | ||
| 16 | Dans ce cas il est possible de les d'afficher en conservant le fond d'écran en faisant les modifications suivantes : (%%)** (% style="line-height: 1.42857;" %)Pour les fenêtres Adélia, Il faut désactiver le mode "sous-fichier pour message d'erreur" pour le programme (cela se fait via l'option "Caractéristiques générales" du menu "Programme" du GEE). L(%%)(% style="line-height: 1.42857;" %)e mode "sous-fichier pour message d'erreur" est possible pour les fenêtres IBM.(%%) | ||
| 17 | ** (% style="line-height: 1.42857;" %)Pour tous les formats à l'exception des formats sous-fichier il faut leur ajouter dans les "Autres paramètres" la fonction suivante : | ||
| 18 | "DSPMOD(*DS4)" en la conditionnant avec un indicateur (par exemple 97)(%%) | ||
| 19 | ** (% style="line-height: 1.42857;" %)Dans votre programme vous devez savoir si votre programme a été appelé depuis un écran 24 * 80 ou depuis un écran 27 * 132 (cela peut se faire par exemple par un paramètre transmis par le programme appelant ou une information stockée dans dans LDA par le programme appelant ou une autre méthode à votre convenance). | ||
| 20 | Il suffit alors d'activer l'indicateur (le mettre à '1') conditionnant la fonction "DSPMOD(*DS4)" au début de votre programme avant le TRAITER qui affiche votre transaction, lorsque votre programme est appelé depuis un programme gérant un écran 27 *132. | ||
| 21 | Exemple : si le programme appelant met à jour la variable paramètre PTAILLE à '*DS3' s'il affiche un écran 24 * 80 ou à '*DS4' s'il affiche un écran 27 *132 votre code sera le suivant :(%%) | ||
| 22 | (% style="line-height: 1.42857;" %)RECEVOIR PTAILLE .....(%%) | ||
| 23 | (% style="line-height: 1.42857;" %)SI PTAILLE ~= '*DS4'(%%) | ||
| 24 | (% style="line-height: 1.42857;" %) *IN97 ~= '1' | ||
| 25 | SINON | ||
| 26 | *IN97 ~= '0' | ||
| 27 | FIN(%%) | ||
| 28 | (% style="line-height: 1.42857;" %)INITIALISER 01(%%) | ||
| 29 | (% style="line-height: 1.42857;" %)TRAITER 01 | ||
| 30 | .... (%%) | ||
| 31 | |||
| 32 | |||
| 33 |