2017-04-25 5 views
0

Ich habe eine Anzeigedatei, wo ich zwei zusätzliche Felder hinzugefügt habe, die beim Drücken von f10 auftauchen - fold/drop. Wenn der Benutzer die Datensätze faltet, sollte die Fußzeilenanzeige auf f10 = Entfalten geändert werden. Wenn das Display ausgeklappt wird, sollte die Anzeige auf f10 = falten wechseln.F10-Funktion gibt die Steuerung nicht zurück an Programm

  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     

Die Fußzeile Felder wie unten gesetzt worden:

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

Das Problem, das ist, wenn der Benutzer drückt f10, ändert sich die Anzeige wie erwartet. Damit sich die Fußzeile ändert, ist ein Enter-Treffer erforderlich.

Unten ist ein Codeabschnitt, der die Anzeige der Falz-/Entfaltungsoptionen basierend auf dem * IN45-Indikatorfeldwert steuert. Aber die Kontrolle des Programms erreicht hier nur, wenn Sie die Eingabetaste drücken, würde ich die Kontrolle erwarten, um das Programm zurück auf einfach f10 drücken

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

Grundsätzlich Jetzt frage ich mich, ob die SFLFOLD und SFLDROP Steuerung an das Programm zurückkehren .

Verzweifelt in Hilfe!

@charles,

hatte ich schon versucht, was Sie Charles erwähnt. Aber es funktioniert nur

 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)   

Auf Drücken F10, funktioniert das Falten/Entfalten perfekt. Aber die Kontrolle geht einfach nicht zum Programm. Ich habe sogar versucht, das auf Dateiebene zu setzen. Selbst dort funktionierte es nicht. Irgendwelche Vorschläge sind sehr willkommen.

Antwort

0

Ein 5250-Gerät ist ein (relativ) intelligentes Gerät, kein dummes Endgerät.

SFLFOLD und SFLDROP werden auf dem Gerät verarbeitet, daher wird beim Drücken von F10 keine Steuerung an Ihr Programm zurückgegeben.

haben gerade die Fußzeile

F10=Fold/Unfold 

enthält Wenn Sie wirklich die Kontrolle haben wollen, um Ihr Programm zurückgegeben, konfigurieren F10 als reguläres CF/CA-Schlüssel in dem Subdateisteuersatz. Und verwenden Sie einen Dummy-Fxx Schlüssel im SFLFOLD/SFLDROP Stichwort ...

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

So wird die Steuerung an das Programm zurück. Sie müssen überprüfen, ob F10 gedrückt wurde, anstatt den Modus zu prüfen, da das System den Schalter nicht einleitet.

+0

Hallo Charles, ich habe selbst das versucht .. Aber immer noch die Steuerung kehrt nicht zum Programm –

+0

Haben Sie es in den Subdatei-Datensatz oder den Subdatei-Steuerdatensatz? Versuchen Sie es mit dem anderen. Ehrlich gesagt, ich bin mir nicht sicher, ob es funktioniert ... aber ich erinnere mich, dass ich den Fußzeilenwechsel gesehen habe ... – Charles

+0

Hallo Charles, ich habe versucht, es in den Subfile Control Record und auf den Display-Level zu bringen. Das Setzen auf die Subdatei-Datensatz-Ebene führt dazu, dass die Kompilierung fehlschlägt. –

Verwandte Themen