-
Die Situation, dass das der Hintergrund verschwindet, sobald ein weiteres Fenster aufgemacht wird ohne zuvor in dem "Haupt-"Programm den Bildschirm erneut angezeigt zu haben (EXTFMT) ist alt bekann.
An dieser Stelle wird sich auch nichts mehr ändern, da der Stand der "green Screen"-Entwickung "stabilisiert" ist.
Birgitta
-
@ mit Read lesen nach Systemwechsel
Bin zwar kein Cobolaner, denke aber, wenn du die Datei zu macht und neu öffnest sollte das gehen.
Wir nutzen für diese Dinge (Für alle Dateizugriffe) 'Leseprogramme'.
D.H. ein PGM liest/schreibt Datei A System A, ein anderes Datei A System B
(SQL: Connect to ...)
So können wir immer nach Bedarf die richtige Datei vom richtigen System lesen
Ach ja, wenn wir nicht mit SQL zugreifen nutzen wir DDM Files dafür (aber auch mit Lesepgmmen)
Robi
-
Naja, ihr werdet doch auch noch eine Befehlseingabemöglichkeit haben. Da wo Du z.B. den strpdm eingibst gibst du dann den chgdspdf ein.BTW. Ich würde SQL-Aufrufe und normale Reads und writes nicht unbedingt kombinieren. Was spricht gegen ein SQL-Read?GG
-
Nun werden hier mehrere Themen durcheinander geworfen:
1. Der Standard-Default für CRTDSPF ist RSTDSP(*YES) zumindest auf allen Systemen die ich kenne.
Wenn er anders ist, gibt's aus irgendwelchen Gründen einen CHGCMDDFT.
Ein RSTDSP(*NO) führt mitunter zu seltsamen Verhalten. Wenn eine Programm an Stelle von EXFMT nur Write/Read's verwendet (in COBOL geht das gar nicht anders), kann es mitunter vorkommen, dass bei "Unterbrechungen" der Bildschirm nicht korrekt wiederhergestellt wird. Das Programm wartet auf einem READ aber man kann keine Eingabe mehr tätigen, nochnicht mal F-tasten werden akzeptiert.
RSTDSP(*YES) verhindert dies.
2. ASSUME war schon immer nötig, wenn ein Programm ausschließlich ein Fenster mit Window bedient.
Jeder Open einer DSPF prüft, ob es bereits eine geöffnete DSPF im Callstack übergeordnet gibt. Dieser Inhalt wird beim Open gesichert und beim Close wiederhergstellt falls RSTDSP(*YES) im übergeordneten DSPF angegeben ist.
Dies führt daher zu dem Verhalten, dass die 1. Anzeige des Fensters klappt, ab der 2. Anzeige meistens nicht. Hier hilft mitunter ein USROPN, so dass ich eben OPEN/CLOSE durchführen muss.
Noch komplexer wird es dann mit mehreren Ebenen die alle nur Fenster verwenden.
3. SQL und Native-IO haben nichts gemeinsam. Ein SQL-Connect hat ausschließlich für SQL Bedeutung, normale Datei-Befehle merken davon nichts. Früher (funktioniert heute auch noch) verwendete man im Einzelnen DDMF's mit OVRDBF. Allerdings ist hier die Grenze bei 16 gleichzeitigen Open's und die Voraussetzung SNAoverIP.
-
Hallo alle miteinander
Also auf jeden Fall vielen Dank für Eure Hilfe. Ist eine tolle Sache, das mit dem Forum.
Das Problem des verschwundenen Hintergrund habe ich jetzt so gelöste, dass das erste Window kein Window mehr ist und jetzt funktioniert alles. Hat mich zwar schon gewurmt, dass zweifache Fenster nicht möglich sein sollen, aber ganz pragmatisch ist eine funktionierende Lösung halt das Wichtigste.
Fuerchau: auch Dir besten Dank bez. SQL und Native IO, ok muss ich halt in diesen Fällen die SQL's einbauen.
Schönes Wochenende und wenn ich wieder Probleme haben sollte, weiss ich ja jetzt, wohin ich mich wenden kann
LG Günter
-
Natürlich sind mehrere Fenster möglich.
Aber du brauchst in jeder DSPF ein Format mit ASSUME.
-
Das habe ich auch und es funktioniert trotzdem nicht
-
Das Problem ist, dass das 2. Fenster das 1. überlagert und den Inhalt sichert.
Da du dich in COBOL bewegst, wirst du sicherlich noch mit OPM-Cobol also CBL als Typ arbeiten.
Ändere den Typ mal in CBLLE und mache generell ein Open/Close.
An der Quelle brauchst du im Gegensatz zu den RPG'lern nichts ändern.
Manchmal hilft auch USRRSTDSP:
http://www-01.ibm.com/support/knowle....htm?locale=de
Damit wird der SAVE/RESTORE bei Fenstern vermieden.
Wichtig ist natürlich, dass die rufenden Programme ihren Bildinhalt komplett selber wieder herstellen!
Das ist mitunter bei Subfile's nicht so trivial um z.B. die aktuelle Seite oder den Cursor nicht zu verschieben.
-
Da ist mir ggf. noch was eingefallen.
Wenn dem ggf. unbekannten übergeordneten Programm geholfen werden soll, kann auch folgendes API helfen:
http://www-01.ibm.com/support/knowle...st.htm?lang=de
Vorgehensweise:
- Sichern des Bildschirminhaltes
- Darstellen der Fenster mit USRRSTDSP
- Wiederherstellen des gesicherten Inhaltes
-
Lieber Fuerchau
Nochmals vielen Dank. Wie ich bereits sagte, habe ich das jetzt so gelöst, dass ich nur noch ein Fenster habe und es funktioniert. Sobald ich wieder etwas Luft habe, werde ich Deine Ratschläge ausprobieren.
Schönen Tag noch
Günter
-
Jetzt habe ich noch eine Frage
Ich muss aus meinem Cobol-Programm direkt via SQL lesen (weil ich via set-connect) in eine andere Systemumgebung gehe. Das habe ich so gelöst, dass ich das in einem Unterprogramm mache. Dort habe ich zwei Funktionen:
1. Aufsetzen bei einem bestimmten Key
EXEC SQL DECLARE CRSCTNO CURSOR FOR
SELECT
T01.SHORTN,
T01.CTNO,
T01.NAMPA1
FROM VMKJF25001 T01
WHERE T01.SHORTN >= :SQL-SHORTN
FOR FETCH ONLY
END-EXEC.
2. Sequentielles witerlesen ab dem vorherigen KEY SQL-SHORTN
Im vorherigen Cobol war dort einfach
READ VMKJF25001 NEXT
AT END MOVE 1 TO EOF
Nun meine Frage: wie schaut den dieser Befehl im SQL aus, existiert dort in "Read next*
Vielen Dank für Deine Hilfe
Günter
-
Nun da musst du mal ins SQL-Programmierhandbuch schauen.
Kurz nur soviel:
"declare ... Cursor " definiert einen Cursor, entspricht also dem COBOL-Select.
Nun machst du nur noch
open cursorname
fetch Cursorname into ....
Close cursorname
Da du auch noch zu einer anderen DB willst benötigst du einen
exec SQL connect ....
mit RDB-Namen, User und Kennwort.
Um zu Connecten benötigst du per WRKRDBDIRE den DB-Namen des Zielsystems.
Host-Variablen müssen in COBOL zwischen exec SQL begin declare section end-exec und exec SQL end declare section end-exec eingebettet werden.
Ggf. musst du per CRTSQLPKG die SQL's für das Zielsystem extrahieren wenn dies nicht automatisch passiert.
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