-
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
-
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
-
-
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' '
-
Ich würde mal in der DSPFD RSTDSP(*YES) einstellen.
-
CHGDSPF xxxxxxx RSTDSP(*YES)
-
Danke, werde ich probieren
A 93 SFLCLR
muss ich also nach dieser Angabe was genau angeben?
A RSTDSP(*YES)
eingeben?
-
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.
-
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.
-
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
-
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
-
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
-
By harkne in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 13-01-15, 16:43
-
By hdw2 in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 18-07-14, 14:27
-
By Tschabo in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 16-04-14, 16:20
-
By Robi in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 14-11-13, 16:18
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks