[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    Hintergrund verschwindet bei mehrmaligem Aufruf eines Programms mit Window

    Hallo zusammen,

    ich habe zwar bereits gesucht und ähnliche Probleme gefunden, aber das hat mir leider nicht weiter geholfen.

    Ich habe ein Subfile-Übersicht. Mit einer Auswahl wird ein anderes Programm aufgerufen, welches nur ein Window hat und das DUMMY Format mit ASSUME und OVERLAY

    Wenn ich nun mehrere Auswahlen eingeben, wird der Hintergrund beim ersten Aufruf des zweiten Programms noch angezeigt. Ab der zweiten Auswahl sieht man aber nur noch das Fenster ohne Hintergrund.

    Ist mir zu helfen ?

    Viele Grüße Harald

  2. #2
    Registriert seit
    May 2004
    Beiträge
    444
    Ich habs selbst gefunden. Wirklich verstehen tue ich es aber nicht. Beide Bildschirmdateien sind mit RSTDSP(*YES) umgewandelt. Jetzt habe ich im Window-Programm einfach den LR mit RETURN ersetzt und jetzt lässt er den Hintergrund stehen. Ich kann mir das nur so erklären, dass der RSTDSP(*YES) sich den Hintergrund speichert und beim LR dann weg wirft.

  3. #3
    Registriert seit
    Dec 2014
    Beiträge
    310
    Eine mögliche Lösung:
    Im DDS des Windows das Schlüsselwort USRRSTDSP angeben.
    Damit wird der Hintergrund nicht gelöscht und alles sollte stehen bleiben.
    (Können je nach Auswahl verschiedene Windows angezeigt werden? Falls ja, dann muss das berücksichtigt werden)

    EDIT: Hoppla, Du warst schneller. Die Lösung mit dem DDS-Schlüsselwort USRRSTDSP wäre aber vorzuziehen, da Du Dich dann beim Umwandeln um nichts mehr kümmern musst.

  4. #4
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    ist schon lange her, aber spielt das Schlüsselwort KEEP vielleicht noch eine Rolle dabei?

  5. #5
    Registriert seit
    May 2004
    Beiträge
    444
    @cbe

    Genau so gehts mir jedes mal. Mal ist das Window mit in der gleichen Bildschirmdatei, mal extern, mal alleine mal nicht. Ich probiere so lange rum mit Schlüsselwörter bis es irgendwie funktioniert oder gebe einfach auf. Manchmal funktionierts auch mit einem WRITE auf das vorherige Satzformat manchmal eben nicht. Aber ganz ehrlich verstanden hab ich es eh nie. So wie es jetzt ist funktionierts. Ich habs mir mal aufgeschrieben, weiss aber nicht ob ich es wieder finde wenn ich es wieder brauche ;-)

  6. #6
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Eigentlich ist es im Handbuch gut beschrieben, s.u.
    Aber das habe ich vor >10 Jahren geschrieben, jetzt probiere ich da nicht noch mal rum...
    Und wenns bei Dir klappt, würde ich es auch in Ruhe lassen.


    ASSUME (Assume) keyword for display file
    This record-level keyword specifies that the i5/OS operating system is to assume that the record is already shown on the display when the display file is opened.
    Such a record can also be defined, with the KEEP keyword, in another display file. That other display file can be closed before this file (in which you are specifying ASSUME) is opened.

    KEEP (Keep) keyword for display files
    You use this record-level keyword to keep the display from being deleted when the display file is closed.
    The entire display is kept if any of the records on the display have KEEP specified. The default causes the entire display to be deleted when the file is closed.
    In addition, the name of the first, uppermost record on the display that has the KEEP attribute is saved
    by the i5/OS operating system for possible use by subsequent programs. The name kept can be used by a subsequent program that does not specify a record name on its first input operation. This keyword enables you to leave data on the display for review after your program ends, or use that data as input for subsequent programs.

    Quelle: System i Programming DDS for display files Version 6 Release 1

  7. #7
    Registriert seit
    May 2004
    Beiträge
    444
    @cbe

    Danke.

    Ich habe im Window das Schlüsselwort KEEP angegeben. Jetzt bleibt der HIntergrund auch stehen wenn das Programm mit LR beendet wird.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das OS/400 will uns das ja einfach machen.
    Wenn ein Programm diverse Formate ausgegeben hat und dann ein Unterprogramm die Darstellung überschreibt, sichert sich das System den Inhalt beim Open und stellt ihn beim Close wieder her.
    RSTDSP auf der Datei hat nur für das gerufene Programm Bedeutung und wie schon beschrieben, mit ASSUME wird der Bildinhalt nicht gelöscht.

    Wichtig ist halt, der Open sichert den Inhalt, der Close stellt ihn wieder her.
    Dies kann man auch mit USROPN erreichen wenn man ein bisschen mehr im Speicher halten will.

    Das System macht ja auch ähnliches automatisch bei der Abruftaste (SETATNPGM) oder wenn ein MsgBreak-Handler (Durchbruchnachricht) den Bildinhalt verändert.

    Anstelle eines Fensters kann man auch mit CLRL(*NO) und explizitem Bildaufbau nette Effekte erreichen.
    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. 3488 Info Window II
    By hdw2 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 18-07-14, 15:27
  2. aufruf von qstrup
    By rr2001 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 27-05-14, 14:44
  3. Alter Hintergrund bei aufgerufenem Window
    By Robi in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-11-13, 17:18
  4. DSPF / Window / Overlay
    By malzusrex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-05-03, 11:05
  5. API für Informationen zu Modulen eines ILE Programms?
    By it-wolf in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 10-07-02, 14:50

Berechtigungen

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