2017-04-25 1 views
0

Je dispose d'un fichier d'affichage où j'ai ajouté deux champs supplémentaires qui viennent sur pression f10 - fold/drop. lorsque l'utilisateur plie les enregistrements, l'affichage du pied de page doit changer en f10 = déplier. Lorsque l'affichage est déplié, l'affichage doit changer en f10 = fold.F10 ne pas retourner le contrôle au programme

  A*************************************************************** 
    A* LIST OF LOADS WITH BOL SUBFILE CONTROL      
    A*************************************************************** 
    A   R RLG610C1     SFLCTL(RLG610S1)   
    A          SFLSIZ(0011)    
TPA01A          SFLPAG(0005)    
    A          OVERLAY     
    A N71         SFLDSP     
    A N71         SFLDSPCTL     
    A 71         SFLCLR     
    A 91         SFLEND(*MORE)    
TPA01A N45         SFLDROP(CF10)    
TPA01A 45         SFLFOLD(CF10)    
TPA01A          SFLMODE(&MODE)   
    A   RRN   4S 0H  SFLRCDNBR     

Les champs de bas de page ont été définis comme suit:

TPA01A 45        23 25'F10=Fold'  
TPA01A          COLOR(BLU)  
TPA01A N45        23 25'F10=Unfold' 
TPA01A          COLOR(BLU)  

Le problème est que lorsque l'utilisateur appuie f10, l'affichage change comme prévu. Mais pour que le pied de page change, un coup d'entrée est requis.

Il est au-dessous morceau de code qui contrôle l'affichage des options plier/déplier sur la base * valeur du champ indicateur IN45. Mais le contrôle du programme atteint ici que lorsque vous appuyez sur Entrée, j'attendre le contrôle pour revenir au programme sur simple pression f10

If Mode = '1';     
      *IN45 = '0';     
      ElseIf Mode = '0';    
      *IN45 = '1';     
      EndIf;  

En gros, Maintenant, je me demande si le retour SFLFOLD et SFLDROP contrôle au programme .

Désespérément en aide!

@charles,

j'avais déjà essayé ce que vous avez mentionné Charles. Mais cela ne fonctionne pas

 A   R RLG610C1     SFLCTL(RLG610S1)  
    A          CF10(10 'FOLD/UNFOLD') 
    A          SFLSIZ(0011)   
TPA01A          SFLPAG(0005)   
    A          OVERLAY    
    A N71         SFLDSP     
    A N71         SFLDSPCTL    
    A 71         SFLCLR     
    A 91         SFLEND(*MORE)   
TPA01A N45         SFLDROP(CF10)   
TPA01A 45         SFLFOLD(CF10)   

En appuyant sur F10, le pliage/dépliage fonctionne parfaitement. Mais le contrôle ne va tout simplement pas au programme. J'ai même essayé de mettre cela au niveau du fichier. Même là, ça ne fonctionnait pas. Toutes les suggestions sont les bienvenues.

Répondre

0

Un dispositif 5250 est un dispositif intelligent (relativement), et non un simple terminal.

SFLFOLD et SFLDROP sont traités sur l'appareil, donc aucun contrôle n'est pas retourné à votre programme lorsque F10 est enfoncée.

Juste ont le pied de page contient

F10=Fold/Unfold 

Si vous voulez vraiment avoir le contrôle retourné à votre programme, configurer F10 comme touche CF/CA régulière dans le dossier de contrôle de sous-fichier. Et utiliser une clé Fxx factice dans le mot-clé SFLFOLD/SFLDROP ...

 A          CF10(10 'FOLD/UNFOLD')   
TPA01A N45         SFLDROP(CF24)   
TPA01A 45         SFLFOLD(CF24) 

Ainsi, le contrôle retournera à votre programme. Vous devrez vérifier pour voir si F10 a été pressé plutôt que de vérifier le mode, puisque le système n'est pas l'initiateur du commutateur.

+0

Salut Charles, je l'ai même essayé cela .. Mais encore le contrôle ne fait pas que revenir au programme –

+0

Est-ce que vous l'avez mis dans le dossier du sous-fichier, ou l'enregistrement de contrôle de sous-fichier? Essayez l'autre. Honnêtement, je ne suis pas sûr que ça marchera ... mais j'ai l'impression de me souvenir d'avoir vu le pied de page changer ... – Charles

+0

Salut Charles, j'ai essayé de le mettre dans l'enregistrement de contrôle de sous-fichier et au niveau du fichier d'affichage. Mettre au niveau du sous-fichier entraîne l'échec de la compilation –