PDA

View Full Version : OVRDTA



FragenFrank
27-07-07, 10:34
Liebe Kolleginnen und Kollegen,
vielleicht kann mir jemand den folgenden Sachverhalt erklären?


4583.34 FD14 C MOVE BOAUKD §AUFKD

das Feld §AUFKD wird mit dem Inhalt des Datenbankfeldes BOAUKD gefüllt.
§AUFKD ist Bestandteil des Bildschirmfensters WINSON. Beim darauf folgenden EXFMT auf WINSON wird der Inhalt von §AUFKD auch korrekt angezeigt.
Nun habe ich aber §AUFKD in WINSON mit einer Bedienerführung mittels F4 versehen.


4583.74 FD14 * CURSOR IN BOAUKD
4583.75 FD14 C CRLN IFGE 9
4583.76 FD14 C CRLN ANDLE09
4583.77 FD14 C CRCL ANDGE035
4583.78 FD14 C CRCL ANDLE043
4583.79 FD14 C MOVE *BLANK §§RPGM 10 Clear Pgm.name
4583.80 FD14 C CALL 'GVRECURS' Chk recursion
4583.81 FD14 C PARM 'KSFH03' §§RPGM Program to call
4583.82 FD14 C PARM §§§LIB §§RLIB 10 Object Library
4583.83 FD14 C CALL §§RPGM 55 Call program
4583.84 FD14 C PARM §§§RTN
4583.85 FD14 C PARM §AUFKD
4583.88 FD14 C KEYKND CHAINKS01 34
4583.89 FD14 C *IN34 IFEQ '0'
4583.90 FD14 C KSNAM2 CAT KSNAM1:1 NAME
4583.91 FD14 C MOVE NAME §KDNAM
4583.92 FD14 C MOVE NAME $KDNAM
4583.93 FD14 C END
4583.94 FD14 C END

Ich habe mich mittesl ISDB davon überzeugt, dass §AUFKD mit dem ausgewählten Wert gefüllt wurde. Beim darauf folgenden EXFMT auf WINSON wurde aber der alte Wert angezeigt. Dieses Problem konnte ich erst lösen, als ich das Schlüsselwort OVRDTA in WINSON eingefügt habe. Ich blicke da jetzt, ehrlich gesagt, nicht ganz durch; mal scheint OVRDTA für das Überschreiben von Feldinhalten notwendig zu sein, mal nicht?

Hier nochmal der Quellcode für WINSON



0072.50 FD05 A R WINSON
0072.60 FD05 A*%%TS SD 20070726 135731 FDIE REL-V5R4M0 5722-WDS
0072.70 FD05 A CF12(12)
0072.71 FD05 A CF04(04)
0072.80 FD05 A OVERLAY
0072.81 FD05 A OVRDTA
0072.90 FD05 A PUTOVR
0073.00 FD05 A WINDOW(6 6 8 65 *NORSTCSR)
0073.10 FD05 A WDWBORDER((*COLOR BLU) (*DSPATR RI))
0073.11 FD05 A RTNCSRLOC(*WINDOW &CRLN &CRCL)
0073.20 FD05 A 2 4'Auftrag/Sonderartikel'
0073.30 FD05 A COLOR(WHT)
0073.40 FD05 A DSPATR(UL)


0073.80 FD05 A §AUFKD R 9Y00B 3 28REFFLD(BOAUKD BESP02)
0073.90 FD05 A EDTCDE(4)
0074.00 FD05 A COLOR(TRQ)
0074.10 FD05 A $AUFKD R H REFFLD(§AUFKD *SRC)

Eine Eingabe "von Hand" (ohne F4) wurde klaglos akzeptiert.

Schon mal vielen Dank und viele Grüße

Pikachu
27-07-07, 11:14
Das liegt vermutlich am Schlüsselwort PUTOVR (http://publib.boulder.ibm.com/iseries/v5r1/ic2929/info/rzakc/rzakcmst135.htm), das im Format angegeben ist.

Fuerchau
27-07-07, 11:23
OVRDTA und PUTOVR sind normalerweise überhaupt nicht erforderlich.
Diese hat man früher eigentlich nur verwendet für langsame Verbindungen um das Datenvolumen gering zu halten.

Es gibt nur Probleme bei der Verwendung von ERRMSGID/ERRMSG, da in diesem Fall tatsächlich nur die Fehlermeldungen ausgegeben werden und keine Feldinhalte.

Der Zusammenhang kann eher zwischen USRRSTDSP (Satzformat) bzw. RSTDSP (CRTDSPF) bestehen.
Fehlt USRRSTDSP stellt das OS den ursprünglichen Inhalt wieder her, wenn der Bildinhalt durch ein untergeordnetes Programm überlagert wurde.
Möchte man dies selber tun, muss USRRSTDSP aktiv sein.
Allerdings muss in diesem Fall auch der Hauptbildschirm wiederhergestellt werden.