2 votes

Comment puis-je contrôler plusieurs sous-fichiers sur le même écran ?

Je rencontre des problèmes avec plusieurs sous-fichiers sur le même écran. J'affiche deux sous-fichiers horizontalement et je ne peux utiliser la touche page précédente et la touche page suivante que sur celui qui est chargé en second. J'ai lu quelque part qu'il était possible de changer le sous-fichier "actif" mais je n'ai rien trouvé de plus.

Code RPG :

     // affichage de l'écran
     if #rrn02 <> 0 and #rrn03 <> 0;

       write msgctlw;
       write win01;
       write ctl03;
       write ctl02;
       read  ctl02;
       read  ctl03;

     else;

       *in02   = *on;
       @err00  = *on;
       @errmsg = '*Erreur : Aucun enregistrement récupéré';
       @errmsgs1(@errmsg);

     ENDIF;               

1er Sous-fichier :

 A          R SFL02                     SFL
 A            WINCD1         5      2  1
 A                                      COLOR(YLW)
 A            WINST1         2      2  7
 A                                      COLOR(YLW)
 A            WINCITY1      15      2 11
 A                                      COLOR(YLW)

 A                                  3  1'*-----------------------*'
 A          R CTL02                     SFLCTL(SFL02)
 A N61                                  SFLDSPCTL
 A N60                                  SFLDSP
 A                                      SFLPAG(5)
 A                                      SFLSIZ(500)
 A                                      WINDOW(4 8 13 25)
 A                                      OVERLAY
 A N60                                  SFLEND(*MORE)
 A  62                                  SFLCLR
 A                                      SFLCSRRRN(&#CSR02)
 A                                      SFLFOLD(CA11)
 A                                      CF06
 A                                      CF15
 A                                      WDWBORDER((*DSPATR ND))
 A
 A            #RRN02         4S 0H      SFLRCDNBR(CURSOR)
 A            #CSR02         5S 0H
 A            @CURRCD       10A  H
 A            @CURFLD       10A  H
 A            @CURPOS        4S 0H
 A                                  1  1'Code postal  '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1  7'Etat'
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1 11'Ville           '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)              

2ème Sous-fichier :

 A          R SFL03                     SFL
 A            WINCD2         5      2  1
 A                                      COLOR(YLW)
 A            WINST2         2      2  7
 A                                      COLOR(YLW)
 A            WINCITY2      15      2 11
 A                                      COLOR(YLW)

 A                                  3  1'*-----------------------*'
 A          R CTL03                     SFLCTL(SFL03)
 A N61                                  SFLDSPCTL
 A N60                                  SFLDSP
 A                                      SFLPAG(5)
 A                                      SFLSIZ(500)
 A                                      WINDOW(4 41 13 25)
 A                                      OVERLAY
 A N60                                  SFLEND(*MORE)
 A  62                                  SFLCLR
 A                                      SFLCSRRRN(&#CSR03)
 A                                      SFLFOLD(CA11)
 A                                      CF06
 A                                      CF15
 A                                      WDWBORDER((*DSPATR ND))
 A
 A            #RRN03         4S 0H      SFLRCDNBR(CURSOR)
 A            #CSR03         5S 0H
 A            @CURRCD       10A  H
 A            @CURFLD       10A  H
 A            @CURPOS        4S 0H
 A                                  1  1'Code postal  '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1  7'Etat'
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)
 A                                  1 11'Ville           '
 A                                      COLOR(GRN)
 A                                      DSPATR(RI)
 A                                      DSPATR(UL)

0voto

Charles Points 964

Ne LISEZ pas un format particulier...

Lisez plutôt le fichier. Vous pouvez configurer des indicateurs pour vous dire dans quel sous-format se trouvait l'utilisateur lorsqu'il a appuyé sur une touche de commande.

0voto

Nate Huff Points 55

Après des recherches plus approfondies, j'ai découvert l'origine du problème. J'essayais d'avoir deux sous-fichiers côte à côte alors que le système d'exploitation ne peut gérer que deux sous-fichiers empilés verticalement.

Extrait de cet article de blog :

Le sous-fichier côte à côte doit être géré par la programmation car l'OS/400 ne le gèrera pas automatiquement.

Pour obtenir le résultat souhaité (deux listes côte à côte), je vais mettre mes données dans un sous-fichier et les diviser en deux lignes en utilisant SFLLN(2) dans mon DDS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X