-
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
-
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.
-
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.
-
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.
-
Ja, INDARA ist auf Dateiebene angegeben.
Was genau soll ich am Listoutput prüfen? Vom Displayfile oder vom Programm?
-
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
-
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.
-
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.
-
Klasse, das hat funktioniert. Jetzt ist der Bereich vom SFL leer und die Fehlmeldung wird auch angezeigt.
Vielen Dank
-
Hi,
lange her, aber ich meine das man mit dem Schlüsselwort ERASE eine einfache und gute Screensteuerung erreichen kann.
Similar Threads
-
By AK1 in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 02-12-15, 16:54
-
By Creedem in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 19-05-15, 10:21
-
By skywalker in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 12-02-14, 13:16
-
By vorderhaus in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 12-12-02, 08:42
-
By vorderhaus in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 03-06-02, 16:21
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks