PDA

View Full Version : Anzeige Display-Formate (OPM-Cobol) in Verbindung mit gecallten Windows



Pace
16-05-06, 08:30
Guten Tag,

wir haben folgendes Problem:

Ein OPM-Cobol-Programm (a) baut eine Bildschirmanzeige über mehrere Formate auf. Das Display-File (von a) ist mit "Anzeige wiederherstellen . . . . RSTDSP *YES" erstellt. Im betreffenden DDS-Format wurden u.a. die Satz-Schlüsselwörter
OVERLAY,
PUTOVR,
OVRDTA,
OVRATR,
FRCDTA
verwendet.

Nach dem CALL von anderen Window-programmen (b), die die o.g. Anzeige des Hauptprogrammes (a) teilweise überlagern sollen, ist aber die komplette Bildschirmanzeige des aufrufenden Programmes (a) verschwunden und nur noch das gecallte Window (b) sichtbar. (Windows (b) wurden mit ASSUME in der DDS-Definition definiert und bei der Compilierung ebenfalls mit "Anzeige wiederherstellen . . . . RSTDSP *YES" erstellt. Ist dies der Fehler?)

Dies (Verschwinden der Display-Formate von (a)) passiert ab dem 2. Aufruf eines Window-Programmes (b). Leider weiss ich mir nur so zu helfen, nach jedem CALL (von b) mind. 1 Bildschirm-Format in (a) neu zu schreiben. Dann ist die Anzeige wieder komplett. Aber das erscheint mir mehr als unprofessionell und ausserdem verlangsamt es die Ausführung.
Ich bin für jeden Vorschlag dankbar.
Mit freundlichen Grüßen,
Pace

Fuerchau
16-05-06, 08:43
Die Schlüsselworte PUTOVR, OVRDTA, OVRATR stellen häufig das Problem dar.
In Zeiten der schnellen Netze werden diese Funktionen eigentlich nicht mehr benötigt und stellen auch kein Performanceproblem mehr.
Insbesonders bei CALL-Aufrufen mit Bildschirmen sorgt RSTDSP(*YES) dafür, dass der Bildinhalt (2KB) erst vom Terminal abgerufen wird und hinterher wieder ans Terminal gesendet werden muss.
Die schnellste Verarbeitung stellt immer noch die komplette Ausgabe eines Bildes dar mit dem Verzicht auf RSTDSP !
Verlangsamt wird das Ganze auch durch die Angabe von FRCDTA, da dadurch die Daten sofort ans Terminal gesendet werden müssen ohne die Daten intern zu puffern.
Normalerweise übeträgt die AS/400 erst bei einem READ die auszugebenden Daten.
Dadurch kann man durchaus mehrere Formate, ggf. per Overlay, ausgeben bevor überhaupt Daten ans Terminal gelangen.

FRCDTA eignet sich eigentlich nur für Statusanzeigen während der Durchführung mehrerer Programmschritte (Beispiel SNDSTSMSG) ohne Bedienereingriff.

Also:
Durch RSTDSP(*NO), weglassen von FRCDTA, und OVRxxx werden die Anzeigen deutlich schneller.