[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    163

    Subfile bleibt in der Anzeige

    Guten Morgen,

    auch mit ausgeschaltetem SFLDSP bleibt eine Subfile beim nächsten WXFMT auf dem Bildschirm.
    Die Kontrollsatz Defi
    Code:
            R LISTECTL                  SFLCTL(LISTESFL)                   
                                        SFLSIZ(0098)                       
                                        SFLPAG(0005)                       
                                        CA03                               
                                        CF06                               
                                        CA12                               
                                        RTNCSRLOC(&RCDFMT &RCDFLD &RCDPOS) 
                                        CSRLOC(POSY       POSX)            
                                        OVERLAY                            
    90                                  SFLDSP                             
    91                                  SFLDSPCTL                          
    92                                  SFLCLR                             
    99                                  SFLEND(*MORE)                      
              RCDFMT        10A  H                                         
              RCDFLD        10A  H                                         
              RCDPOS         4S 0H                                         
              POSY           3S 0H                                         
              POSX           3S 0H                                         
              RCDNR1         4S 0H      SFLRCDNBR(CURSOR)
    Die Bezugszahlen habe ich im Programm benamst

    Code:
    d INDPTR          S               *   INZ(%ADDR(*IN))   
                                                            
    D BEZUGSZ         ds                  based(IndPtr)     
    d  SFLDSP                90     90                      
    d  SFLDSPCTL             91     91                      
    d  SFLCLR                92     92                      
    D  MSGALARM              96     96                      
    D  MSGSFLEND             97     97                      
    D  SFLEND                99     99
    Vor dem nächsten EXFMT rufe ich eine Prozedur auf:

    Code:
    p SFLClear        b   
    d                 pi  
     /FREE                
        sfldspctl = *off; 
        sfldsp    = *off; 
        sflclr = *on;     
        RCDNR1 = 0;       
        CTLHEADA = ND;    
        write Listectl;   
        sfldspctl = *on;  
        sflclr = *off;    
                          
     /END-FREE            
                          
    p SFLclear        e
    Kann mir jemand erklären, warum das Subfile trotzdem stehen bleibt?

    Herzlichen Dank im Voraus

    Hubert

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Nun ja, die Ausgaben werden gepuffert. D.h., dass die Wirkung erst mit dem nächsten Read oder EXFMT eintritt.
    Was dein Programm also nach dem Aufruf macht ist entscheidend.
    Wenn dann noch alte Daten angezeigt werden schein dein SFLCLR nicht zu wirken.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    163
    Wenn SFLDSP = *OFF ist, sollte es doch grundsätzlich nicht angezeigt werden oder irre ich mich da?

    Das Programm ist im Grunde sehr simpel:
    Code:
    sflclear();                    
    write fuss;                    
    EXFMT Listectl;                
                                   
    dow Taste <> F03               
     and Taste <> F12;             
       exsr clrmsg;                
       msgid = CheckHeader(CTLWENR 
                     :CTLAKNR      
                     :CTLKOMM      
                     :CTLPOS       
                     );            
       if msgid <> 'OK';           
          sflclear();              
          exsr sndmsg;             
       else;                       
          sflfill(CTLWENR          
                 :CTLAKNR          
                 :CTLKOMM          
                 :CTLPOS           
                 :CTLPOS     
                 );          
          if RCDNR1 = 0;     
             sflclear();     
          else;              
             CTLHEADA = WH;  
             sfldsp = *on;   
             rcdnr1 = 1;     
             CTLHEADA = WH;  
          endif;             
                             
       endif;                
       write fuss;           
       dump;                 
       exfmt Listectl;       
       SFLProcess();         
    enddo;
    Den DUMP habe ich zum Testen eingebaut. Bei der Anzeige nach dem SFLCLEAR sieht die BZ-Datenstruktur so aus:
    Code:
    BEZUGSZ               DS                           
      MSGALARM            CHAR(1)              '0'     
      MSGSFLEND           CHAR(1)              '0'     
      SFLCLR              CHAR(1)              '0'     
      SFLDSP              CHAR(1)              '0'     
      SFLDSPCTL           CHAR(1)              '1'     
      SFLEND              CHAR(1)              '1'
    Das sollte doch eigentlich dazu führen, dass die Subfile nicht angezeigt wird.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Hast du in der DSPF auf Dateiebene auch INDARA gesetzt?
    Prüfe mal den Listoutput. Ggf. stimmt dein Bezug zwischen Satzformat und IN-Struktur nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    163
    Ja, INDARA ist auf Dateiebene angegeben.

    Was genau soll ich am Listoutput prüfen? Vom Displayfile oder vom Programm?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Was die BZ's angeht, so schau mal nach "Programmieren ohne BZ" von Birgitta.
    Irgendwas ist mit deinen Definitionen der BZ's nicht i.O. da dein SFLCLR nicht wirkt.
    Sonst wären da die Daten nämlich auch weg.

    http://newsolutions.de/forum-systemi...1&d=1586353811
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Aug 2003
    Beiträge
    163
    Die Anleitung von Brigitta nutze ich schon lange. Ich habe jetzt etwas rumprobiert (RPG heißt doch: Raten Programmieren Glauben)

    Das Displayfile besteht aus drei Teilen

    Code:
                         Verwalten Etikettensätze (AET003PF)                     
                                                                                 
        WE-Nr. . . . . : BBBBBBB                 AK . . . . . . . . : B          
        Kommission . . : BBBBB                   Position . . . . . : BB         
                                                                                 
                                                                                 
                                                                                 
    Aus  WE-Nr. AK Komm. Pos. Maße                                               
                              Kunde                                              
     0  0000000 0  00000 00   000000000000000000000000000                        
        000000000000000000000 000000000000000000000                              
     0  0000000 0  00000 00   000000000000000000000000000                        
        000000000000000000000 000000000000000000000                              
     0  0000000 0  00000 00   000000000000000000000000000                        
        000000000000000000000 000000000000000000000                              
     0  0000000 0  00000 00   000000000000000000000000000                        
        000000000000000000000 000000000000000000000                              
     0  0000000 0  00000 00   000000000000000000000000000                        
        000000000000000000000 000000000000000000000                              
                                                                      Weitere ...
                                                                                 
      00000000000000000000000000000000000000000000000000000000000000000000000000 
    Rot ist der Kopf, schwarz das Subfile und Blau der Fuß mit den Angaben zu Funktionstasten.
    Wenn ich den Fuß ohne OVERLAY lasse, wird das Subfile richtigerweise nicht angezeigt, wenn SFLDSP = *OFF. Allerdings wird dann auch das MSGSFL nicht angezeigt. Wenn im Fuß OVERLAY angegeben wird, wird das MSGSFL angezeigt, wenn ein Fehler auftritt, aber das Subfile bleibt bei SFLDSP = *OFF stehen. Ich weiß nicht mehr weiter.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Das ist der Fluch von Overlay.
    Dabei wird nur das ausgegeben, was angegeben ist, der Rest bleibt immer bestehen.
    Mach einfach ein leeres Satzformat ohne Overlay, dass den Bildschirm halt löscht und den Rest dann mit Overlay.

    Da ich nicht mit MSGSFL arbeite, kann ich das Problem nicht nachvollziehen.

    Übrigens:
    Niemand sagt, dass das SFLCTL über der SFL stehen muss, es geht auch umgekehrt:
    Also ein Kopfformat ohne Overlay und das Fußformat als SFLCTL mit Overlay.
    Allerdings funktioniert dies nur, wenn im Kopf keine Eingabefelder vorhanden sind.

    Wie das mit mehreren aktiven Eingabeformaten funktioniert, ist eine ander Geschichte.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    163
    Klasse, das hat funktioniert. Jetzt ist der Bereich vom SFL leer und die Fehlmeldung wird auch angezeigt.

    Vielen Dank

  10. #10
    Registriert seit
    Jan 2001
    Beiträge
    832
    Hi,

    lange her, aber ich meine das man mit dem Schlüsselwort ERASE eine einfache und gute Screensteuerung erreichen kann.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Hast du das mal für SFL versucht?
    Eine SFL ist ja rein intern und wird durch das SFLCTL-Format gesteuert, ist also als Format auf dem Bildschirm nicht vorhanden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Subfile-Anzeige
    By AK1 in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 02-12-15, 17:54
  2. Antworten: 2
    Letzter Beitrag: 19-05-15, 11:21
  3. Subfile - Feld Anzeige
    By skywalker in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 12-02-14, 14:16
  4. maschine bleibt im ipl hängen.....???
    By vorderhaus in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 12-12-02, 09:42
  5. Drucker bleibt im Pending......
    By vorderhaus in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 03-06-02, 17:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •