PDA

View Full Version : Window(s) in RPGLE



peter.kinne
23-12-04, 06:48
Hallo,

ich habe ein Problem bei der Anzeige von einem Window aus einem RPGLE-Programm. Hier die vorhandenen Programme.

PGM_1 = Zeigt Daten im Fullscreen (EXFMT)
PGM_2 = Zeigt ein Window ohne Eingabemöglichkeit (EXFMT)
PGM_3 = Zeigt ein Window mit einer Abfrage auf J/N (EXFMT)

PGM_1 zeigt einen Bildschirm. Danach erfolgt ein CALL auf
PGM_2 wo einige Infos als Window angezeigt werden. Das DSPF aus PGM_1 bleibt im Hintergrund stehen und das Window aus PGM_2 erscheint am Bildschirm. Nun erfolgt die Rückkehr zu PGM_1. Dort erfolgt eine CALL auf PGM_3 wo ein kleines DSPF mit einer Anfrage auf J/N angezeigt wird (bzw. werden soll).

Jedoch werden die DSPFs aus PGM_1 und PGM_2 gelöscht und nur noch das Window aus PGM_3 erscheint am Bildschirm.
Der Hintergrund ist nun dummerweise schwarz.

Die Bildschirme PGM_2 und PGM_3 wurde mit dem Parameter RSTDSP(*YES) umgewandelt. Beide haben ausserdem ein Dummyformat mit dem Schlüsselwort "ASSUME" und "OVERLAY"

Hat jemand einen Tipp wie ich alle 3 Formate gleichzeitig auf den Bildschirm bekomme ????

Weihnachtliche Grüße

Peter

Fuerchau
23-12-04, 07:37
RSTDSP(*YES) sorgt dafür, dass das OS für die Wiederherstellung des Displays zwischen Programmebenen sorgt.
RSTDSP(*NO) heisst, dass die Programme dafür verantwortlich sind.
ASSUME löscht den Bildschirm für eine neue Programmebene nicht nicht.
Für das Fenster gibt es noch das DDS-Schlüsselwort RSTUSRDSP (oder so ähnlich), was das Löschen des Windows beim Verlassen des Programmes verhindert.

NEich
23-12-04, 11:50
Sie müssen ein Dummy-Format in die DSPF Dateien mit Keyword ASSUME einbauen, die nur ein Window als Ausgabe benutzen:

A R DUMMY
A TEXT('PREVENTS PREVIOUS SCREEN FROM-
A BEING CLEARED')
A ASSUME
A 5 9' '

Damit wird der Bildschirminhalt nicht gelöscht beim Aufruf des Programms und Anzeigen des Window-Formats.

Ciao, Nico

peter.kinne
23-12-04, 11:54
So ein Format habe ich bereits. Ansonsten geht es ja überhaupt nicht.

Gruß

Peter

NEich
23-12-04, 11:56
Ich sollte genauer lesen, entschuldigung :)

Fuerchau
23-12-04, 16:01
Hast du's denn nun mal mit RSTDSP(*NO) versucht ?!?

peter.kinne
23-12-04, 18:53
Hast du's denn nun mal mit RSTDSP(*NO) versucht ?!?


@Fuerchau

Sorry hatte heute nur einen kurzen Tag. Musste noch Geschenke kaufen.

Ja ich habe es probiert, hat aber nix gebracht.

Trotzdem vielen Dank für den Tipp

Ich werde mal über die Feiertage etwas testen. Kann doch wohl nicht so schwer sein, oder doch ?!?

Frohe Weihnachten,

Peter

Stefan12
06-09-05, 07:17
Hallo,

das Thema ist zwar schon älter, aber ich habe jetzt genau das Problem.
Hat vielleicht jemand eine Lösung ??

Danke schon mal

Gruß

Stefan

Stefan12
06-09-05, 10:29
Man gut, das man ab + an Azubi's hat, die n bischen testen können ;-))

Also, im DSPF von PGM_2 muß das Schlüsselwort "KEEP" auf J stehen.
Dadurch bleibt der Bildschirm dann erhalten. Blöd ist nur, das bei Ausgabe des 2. Windows, das 1. eigentlich nur überlagert wird + man die Fenster-Position schon genau treffen muß.

Gruß

Stefan