PDA

View Full Version : Write zeigt keine Daten, read aber



dibe
18-03-26, 15:38
Guten Tag

in einem sehr sehr alten, sehr großen Pgm haben wir eine Anpassung vorgenommen.
Wir rufen ein externes Pgm. das Daten, fals vorhanden, in einem Window AUF dem alten Schirm anzeigt.

also: ALT
Pgm alt: write Satzformat1
Pgm alt: Write Satzformat2
...
Pgm alt: Exfmt Satzformat3
Pgm alt: read Satzformat2 (geht 'automatisch', ohne erneutes Enter)

NEU
Pgm alt: write Satzformat1
Pgm alt: Write Satzformat2
...
Write Satzformat3
call Pgm das das Window 'auf' dem Bild des alten Pgms anzeigt
Pgm alt: Exfmt Satzformat3
Pgm alt: read Satzformat2


Obwohl alle Satzformate geschrieben wurden ist das Window auf einem 'leeren' Bildschirm.
Die Konstanten Texte aus allen Formaten sind da, die Feldinhalte, die am Bildschirm Angezeige werden müssten fehlen.

bestimmt irgend ein Schlüsselwort?
kann das jemand sagen?

Vielen Dank
Dietlinde Beck

Fuerchau
18-03-26, 16:20
Assume war das fehlende Wort im Window:
https://www.ibm.com/docs/en/i/7.4.0?topic=80-assume-assume-keyword-display-files

dibe
19-03-26, 08:13
OK, danke.
Das habe ich befürchtet.
In der Source gibt es das, auskommentiert mit der Info das mit diesem Schlüsslewort die Masken alle unbrauchbar sind. Ich habe es versucht, das stimmt leider.
Da wurden damals wohl die Überlagerungen der Masken nicht so ganz sauber durchgeführt.
Schade.
DiBe

Fuerchau
19-03-26, 08:30
Das kommt auf das Fenster an:
Das Fenster muss alle Stellen des gewünschten Bildformates belegen. D.h., dass die Lücken mit Leer-Konstanten gefüllt werden müssen. Dann kann Assume auch für sowas verwendet werden. Dabei gilt auch das sog. Attributbyte als Füller, dass ja vor jedem Feld/Konstante steht.
Wahrscheinlich ist das "Fenster" nicht als WINDOW deklariert sondern nur als normales Format, dass nicht den gesamten Bildschirm belegt.
Ich glaube mit F20 im DDS-Designer kann man die Lücken erkennen, beim RDI-Designer sollte es vergleichbare Funktionen gegben.
Wichtig ist nach dem Windows-Close, dass das rufende Programm den Bildinhalt wieder komplett neu aufbaut.