[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte
  1. #1
    Registriert seit
    Feb 2015
    Beiträge
    19

    AS400 - Window verschwindet

    Guten Tag zusammen
    Ich bin zwar ein erfahrener Informatiker, aber neu in der AS400 Umgebung. Ich habe folgendes Problem:
    1. Mein Programm wird von einem Hauptprogramm aufgerufen. In meinem Programm gebe ich ein Window aus, in dem drei Felder ausgegeben werden
    2. Auf jedes der drei Felder kann via PF4 ein weiteres Programm aufgerufen werden, das dann jeweils ein weiteres Window ausgibt, aus dem dann einzelne Werte des entsprechenden Feldes ausgewählt werden können.
    3. Nachdem der Wert ausgewählt wurde komme ich wieder in mein Programm zurück und gebe das aktualisierte Window wieder aus. Zuerst mache ich ein Clear des Subfiles und danach eine erneute Ausgabe des Subfiles mit den aktualisierten Werten.

    Und nun passiert es: Die Daten werden zwar korrekt angezeigt, aber die Begrenzungen des Windows nur teilweise, Ausserdem verschwindet der Hintergrund, d.h. das Bild des Hauptprogrammes.

    Kann mir hier jemand helfen?

    Vielen Dank im Voraus

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Ich kann Dir zwar nicht helfen, hilfreich für andere ist es aber zu sagen in welcher Sprache Du das machst RPG / Cobol und evtl. Dein Source postet in dem Du die Fenster erstellst.

    macht die Sache dann für andere einfacher.

    GG

  3. #3
    Registriert seit
    Feb 2015
    Beiträge
    19
    Danke, ist in Cobol
    LG

  4. #4
    Registriert seit
    Feb 2015
    Beiträge
    19
    Und hier wäre noch das zugehörige DSP-File:

    A DSPSIZ(24 80 *DS3)
    A REF(*LIBL/VMKRF001)
    A PRINT
    A* INDARA
    A CF04(04)
    A CF12(12)
    A ALTHELP(CA01)
    A HELP
    A HLPDOC('DMYHILFE' 'DUMYHELP' 'INTKL-
    A ')
    A************************************************* ****************
    A* WINDOWS DEFINITION
    A************************************************* ****************
    A R VMKDR114W
    A WINDOW(07 05 06 72)
    A WDWBORDER((*COLOR BLU) (*DSPATR RI)-
    A (*CHAR ' '))
    A USRRSTDSP
    A************************************************* ****************
    A* V M K D R 1 1 4 S - Subfile HAUPTRECORD
    A************************************************* ****************
    A R VMKDR114S SFL
    A 3 1'Connection'
    A COLOR(BLU)
    A CONROLTXT 20A B 3 12COLOR(WHT)
    A 3 34 'Contract'
    A COLOR(BLU)
    A CTNOAFT 5A B 3 44COLOR(WHT)
    A 3 50'Shortname'
    A COLOR(BLU)
    A CTNOAFTSH 10A B 3 61COLOR(WHT)
    A*N60 DSPATR(ND)
    A************************************************* ****************
    A* V M K D R 1 1 4 C - Subfile CONTROLRECORD
    A************************************************* ****************
    A R VMKDR114C SFLCTL(VMKDR114S)
    A SFLSIZ(0015)
    A SFLPAG(0003)
    A WINDOW(VMKDR114W)
    A OVRDTA
    A PUTOVR
    A OVERLAY
    A KEEP
    A N92 ROLLUP
    A 91 SFLDSP
    A SFLDSPCTL
    A 93 SFLCLR
    A* SFLEND(*MORE)
    A 01 CSRLOC(LIN POS)
    A RTNCSRLOC(&RCD &FLD)
    A DSPREC 3S 0H SFLRCDNBR(CURSOR)
    A RECNBR 4S 0H
    A LIN 3S 0H
    A POS 3S 0H
    A FLD 10A H
    A RCD 10A H
    A AKTION 6A O 1 2COLOR(WHT)
    A 1 9'Connection'
    A COLOR(WHT)
    A************************************************* ****************
    A* MESSAGE SUBFILE
    A************************************************* ****************
    A R MSGSFL SFL SFLMSGRCD(24)
    A MSGKY SFLMSGKEY
    A MPGMQ SFLPGMQ
    A************************************************* ****************
    A* MESSAGE SUBFILE CONTROL
    A************************************************* ****************
    A R MSGCTL SFLCTL(MSGSFL)
    A SFLSIZ(12) SFLPAG(1)
    A SFLDSP
    A SFLINZ
    A OVERLAY PUTOVR KEEP
    A 95 SFLCLR
    A N98 SFLEND
    A 96 LOCK
    A MPGMQ SFLPGMQ
    A R DUMMY
    A ASSUME
    A 1 3' '

  5. #5
    Registriert seit
    Jun 2009
    Beiträge
    316
    Ich würde mal in der DSPFD RSTDSP(*YES) einstellen.

  6. #6
    Registriert seit
    Jun 2009
    Beiträge
    316
    CHGDSPF xxxxxxx RSTDSP(*YES)

  7. #7
    Registriert seit
    Feb 2015
    Beiträge
    19
    Danke, werde ich probieren

    A 93 SFLCLR

    muss ich also nach dieser Angabe was genau angeben?

    A RSTDSP(*YES)

    eingeben?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Auch das Thema findet sich immer wieder hier.
    RSTDSP(*YES) betrifft den eigenen Bildschirm, wenn dieser von einem CALL überschrieben wurde.
    RSTDSP(*YES) ist, wenn keiner eingegriffen hat, sowieso der Default.

    Mittels Schlüsselwort ASSUME auf einem eigenen, nicht verwendeten Satz, kombiniert nun die AS/400 beim Open den Inhalt deines Fensters mit dem aktuellen Inhalt.

    Durch RSTDSP(*YES) deines DSPF wird nun nach Rückkehr der gesamte Inhalt wiederhergestellt.
    Ohne ASSUME wäre hier RSTDSP(*NO) korrekt.
    Dies führt aber z.B. beim Ausführen einer Abruftaste mit QCMD oder einem MSGBRK zu Problemen.

    ASSUME ist für jedes DSPF mit ausschließlichen Fenstern meist erforderlich.
    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

  9. #9
    Registriert seit
    Jun 2009
    Beiträge
    316
    RSTDSP(*YES) ist nicht der Defaultwert beim CRTDSPF.
    Default = *NO

    Nochmal, ich würde auf der Befehlsebene mal

    CHGDSPF 'Bibliothek/Bildschirmdatei RSTDSP(*YES)

    eingeben.

    und dann nochmal probieren.

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Füg' mal in Deine DisplayFile das folgende Dummy-Format ein (wird nie aufgerufen!) und erstelle Display-File und Programm neu.

    Code:
    A          R DUMMYFMT                             
    A                                      ASSUME     
    A                                 24 80' '
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  11. #11
    Registriert seit
    Feb 2015
    Beiträge
    19
    Guten Morgen miteinander
    Zuerst einmal vielen, vielen Dank für Eure Tips, finde ich super.

    Brigitta: ja werde ich probieren

    Dschainers: Sorry, ich hatte ja geschrieben, dass ich neu in dieser Umgebung bin, also bitte entschuldige meine wahrscheinlich naive Frage: Wo genau muss ich denn
    CHGDSPF 'Bibliothek/Bildschirmdatei RSTDSP(*YES)
    eingeben - was heisst "auf Befehlseben"?

    Ich habe übriges einen weiteren Test gemacht. Wenn ich aus dem ersten Fenster kein weiteres Pgm/Fenster aufrufe, sondern den auszugebenden Wert in meinem ersten Pgm/Fenster direkt einstelle und dann das Fenster wie gewohnt ausgebe, fubktioniert alles bestens, d.h. der Hintergrund bleibt bestehen. Lange Rede kurzrêr Sinn, es funktioniert nur dann nicht, wenn ich ein zweites Fenster ausgebe

    LG Günter

  12. #12
    Registriert seit
    Feb 2015
    Beiträge
    19

    Sytemwechsel mit SET CONNECTION

    Ich hätte da noch eine weitere Frage:

    Wir bewegen uns hier in einer AS400-Umgebung unter Cobol. Auf die Files/Datenbank kann entweder direkt mit SQL oder aber mit den normalen Befehlen "READ" (Normalfall) etc, zugegriffen werden. Nun habe ich folgendes Problem:

    Es existieren zwei Systemumgebungen, eine Für die Schweiz und eine für Luxemburg. Nun muss von der Umgebung Luxemburg auf die Files in der Umgebung Schweiz zugegriffen werden. Dazu findet ein Systemwechsel wie folgt statt:

    *----Systemverbindungen aufbauen
    SET BS-ERRLVL TO TRUE
    SET A-CONNECT TO TRUE
    EXEC SQL CONNECT TO :SQL-LOCRDB END-EXEC
    EXEC SQL CONNECT TO :SQL-RMTRDB END-EXEC

    *----Systemwechsel Remote
    SET BS-ERRLVL TO TRUE
    SET A-SETCONNECT TO TRUE
    EXEC SQL SET CONNECTION :SQL-RMTRDB END-EXEC

    Anschliessend wird dann via SQL auf die Remote-DB zugegriffen:

    EXEC SQL
    DECLARE CRSCTNO CURSOR FOR
    SELECT
    T01.DAIDT,
    T01.TERMDT,
    T02.SHORTN
    FROM VMKLF175 T01,
    VMKJF25801 T02
    WHERE T01.CTNO = :SQL-CTNO AND
    T02.CTNO = :SQL-CTNO
    FOR FETCH ONLY
    END-EXEC.

    EXEC SQL FETCH CRSCTNO INTO
    :SQL-DAIDT,
    :SQL-TERMDT,
    :SQL-SHORTN
    END-EXEC

    Nun meine Frage: Was meinst Ihr, könnte, nachdem der Systemwechsel stattgefunden hat, nicht auch via den normalen Befehlen "READ", etc. auf die Remote-Files zugegriffen werden?

    Vielen Dank und lG
    Günter

Similar Threads

  1. Antworten: 7
    Letzter Beitrag: 13-01-15, 16:43
  2. 3488 Info Window II
    By hdw2 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 18-07-14, 14:27
  3. Eingabe Subfile in einem Window
    By Tschabo in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 16-04-14, 16:20
  4. Alter Hintergrund bei aufgerufenem Window
    By Robi in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-11-13, 16:18
  5. DSPF / Window / Overlay
    By malzusrex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-05-03, 10:05

Tags for this Thread

Berechtigungen

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