View Full Version : Dummy (keep, assume)
woodstock99
21-01-10, 13:14
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?
ja aber des dummy gedöns kann man sich doch sparen.....
also mit den entsprechenden funktionen. z.b. erase. rmvwdw usw lässt sich doch das alles bewerkstelligen.. oder???
ich glaub ich versteh das problem nicht!!!
woodstock99
21-01-10, 13:55
PS : was meinst du mit echt windows formaten???
bei windows kann man dieses schlüsselwort auch angeben...
hmm verwirrt bin...
Noch ein paar Details für dich:
So lange du in einer DSPF und einem Programm arbeitest kannst du das ziemlich selber in die Hand nehmen.
Die Anforderung ist aber:
PGMX mit DSPF ruft MYPGM mit WINDOW auf. MYPGM soll aber nur das WINDOW anzeigen und den darunterliegenden Inhalt nicht zerstören.
Fehlt ASSUME, löscht die AS/400 aber die Anzeige vor der WINDOW-Ausgabe, da ASSUME dem System aber die Annahme mitgibt, die DSPF ist schon geöffnet worden, unterbleibt das Löschen.
Hat eine DSPF RSTDSP(*YES), wird die aktuelle Ansicht beim Open gesichert und beim Close wiederhergestellt.
Mittels ASSUME kann nun das Fenster über den aktuellen Inhalt ausgegeben werden.
Wird das Programm mit *INLR = *ON verlassen, wird die DSPF ja auch geschlossen und beim nächsten Aufruf alles wiederholt.
Häufig wird ein Programm aber mit *INLR=*OFF verlassen um Zustände über mehrere Aufruf zu verwalten.
Die DSPF bleibt also offen.
Wird nun bei RSTDSP(*YES) das WINDOW ausgegeben, stellt die AS/400 die Anzeige mit dem beim Open vorher gesicherten Inhalt wieder her !
Du siehst also plötzlich einen Hintergrund, der mit dem tatsächlich aktuellen Bild nicht übereinstimmt.
Du benötigst also einen RSTDSP(*NO).
USRRSTDSP wird nur benötigt, um innerhalb einer DSPF die überlagerten WINDOWS und den Bildaufbau komplett selber zu steuern.
RMVWDW entfernt alle vorher angezeigt Fenster (ausser den USRRSTDSP) und zeigt dann das aktuelle WINDOW an, funktioniert also nur bei gleichzeitiger Ausgabe eines neuen Fensters.
ERASE entfernt einzelne Formate der aktuellen DSPF, aber keine WINDOW.
Achja, noch zur Ergänzung:
ASSUME ist nicht in WINDOW erlaubt, daher wird das DUMMY-Format benötigt wenn die DSPF nur WINDOW-Formate hat.
woodstock99
21-01-10, 14:24
achso es geht also darum programm a ruft programm b auf und der record von a soll beim aufruf von b erhalten bleiben....
hmmm muß ich mal morgen schauen wie ich das gelöst hab.. interessiert mich jetzt selber..........
woodstock99
22-01-10, 07:56
jo ich hab das bei meinem variablen bildschirmaufbau auch mit assume gelöst...
Programm A called Programm B und der Bildschirm von A soll stehen bleiben...
jo für diese aufgabenstellung ist assume die lösung....