Anmelden

View Full Version : Dummy (keep, assume)



Seiten : [1] 2

Mr.iSeries
04-03-09, 12:01
Wenn bei DSPFs der Hintergrund nicht gelöscht werden soll muss man ja einen Record (Dummy) mit keep und assume erstellen. Funktionierte sonst eigentlich immer. Habe aber jetzt ein Programm wo es manchmal funktioniert und manchmal nicht. Weiß leider nicht woran es liegen könnte. Kann es sein dass das Problem ist dass ich 2 Windows in der DSPF habe?

Fuerchau
04-03-09, 14:19
ASSUME reicht vollständig.
KEEP hat eine andere Bedeutung:
KEEP (Keep) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfkeep.htm)

Beim Close bleibt der Inhalt bestehen (funktioniert also nicht bei Programmende mit *INLR=*ON).
Diese Funktion dient im Wesentlichen dazu, über eine DSPF Informationen an ein aufgerufenes Programm weiterzugeben.

B.Hauser
04-03-09, 19:24
Hallo,

das Problem taucht auf, wenn die beiden Fenster nacheinander angezeigt werden, ohne das dazwischen ein EXFMT auf das Vollbild erfolgt.

Eine Lösung, wie der Hintergrund immer stehen bleibt habe ich allerdings auch nicht gefunden.

Birgitta

kitvb1
05-03-09, 08:07
Du kannst dieses versuchen, damit habe ich dann diese Problem nicht.
Psuedo-code:

exfmt window1
write originalfmt
exfmt window2
Dann bleibt die hintere Format noch da.

Mr.iSeries
05-03-09, 08:13
nach aufruf meines pgm's aus dem startmenü des benutzers wird gleich das window angezeigt. bei meinen anderen pgm's bleibt der hintergrund stehen. bei diesem nicht. hab aber echt keine ahnung woran es liegen könnte. also es klappt ja gleich am anfang nicht.

Fuerchau
05-03-09, 11:51
Versuch mal beim CRTDSPF ... RSTDSP(*NO).
Ggf. fehlt im WINDOW noch zusätzlich OVERLAY.

Mr.iSeries
05-03-09, 12:03
Versuch mal beim CRTDSPF ... RSTDSP(*NO).
Ggf. fehlt im WINDOW noch zusätzlich OVERLAY.

Overlay ist drin. RSTDSP ist NO.
Ich denke eher dass es daran liegt dass ich 80er windows und 132er windows in der gleichen dspf habe.

Fuerchau
05-03-09, 12:44
Stimmt, das Thema hatten wir schon mal. Da funktioniert einiges nicht.
Eine DSPF sollte sortenrein sein.

Du kannst auch kein 132-Fenster auf einer 80-DSPF überblenden bzw. umgekehrt.
Es kann ja keine Formatanpassung geben.

Du musst dir also überlegen, wie der aktuelle Bildschirmstand ist und das entsprechende Fenster mit der DSPF verwenden.

woodstock99
21-01-10, 11:30
zum thema assume und dummy record....

warum verwendet ihr nicht CLRL(*NO)...
dann bleibt der record auch stehen und das neue kann geladen werden....

parameter beim record angeben der neu über das alte geschrieben wird...

Fuerchau
21-01-10, 12:33
CLRL(*NO) funktioniert nicht mit echten WINDOW-Formaten sondern nur mit Standard-RECORD.
CLRL (Clear Line) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfclrl.htm)

Allerdings kann man damit sog. Pseudo-Windows erstellen.
Problem dabei ist, dass man allerdings freie Bereiche seines "Fenster" mit Leerzeichen füllen muss, da sonst in diesen Stellen das unterliegende Format sichtbar bleibt.

WINDOW-Formate müssen ggf. mit RSTDSP (Dateiebene) bzw. USRRSTDSP (Satzformat) definiert werden, da sonst das System selber den aktuellen Inhalt sichert. Allerdings passiert dies nur genau 1 Mal, nämlich vor der ersten Ausgabe des Fensters.
Gibt man dann das Fenster das nächste mal aus, wird der vorherige gesicherte Inhalt mit angezeigt!

Ich habe da schon leider diverse Meldungen meiner Kunden bekommen, dass in Fenstern uralte Hintergründe auftauchen da die meisten Programme mit *INLR = *OFF verlassen werden.

USRRSTDSP (User Restore Display) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstzusrrstd.htm)