PDA

View Full Version : CSRLOC in WINDOW-Format klappt nicht



coolie
03-09-07, 11:35
Hallo iSeries-Gemeinde,
ich hab mir schon die Finger wund gehackt aber trotzdem geht's nicht so wie ich will. Kann mir jemand sagen, wo der Fehler steckt:

Subfile in einem Window wird angezeigt.
Bei F5=Aktualisieren soll die Subfile erneut angezeigt werden. Der Cursor soll exakt dort wieder stehen wo er bei Drücken von F5 zuletzt stand, also ggf. auch außerhalb der Subfile (z.B. im CTL-Format).

Im CTL-Format sind angegeben:
RTNCSRLOC(*WINDOW &ROW &COL)
CSRLOC(ROW COL)

Das Subfile-Auswahlfeld hat DSPATR(PC) aber das wird ja durch CSRLOC überschrieben.

Trotzdem wird der Cursor nicht richtig gesetzt. Es sieht so aus als würde der Cursor irgendwie relativ zum Window versetzt. Was mach ich da bitte falsch?

Fuerchau
03-09-07, 12:07
*WINDOW liefert die relative Position zum Fenster.
CSRLOC setzt den Cursor relativ zum Bildschirm.
Bei RTNCSRLOC kannst du statt *WINDOW auch *RECNAME verwenden.

coolie
03-09-07, 12:10
Ahhh, ok. Jetzt ist's mir klar.

coolie
03-09-07, 12:58
Heißt das jetzt, ich kann bei einem Window den Cursor nur über den Umweg mit RTNCSRLOC(*MOUSE &1 &2 &3 &4) wieder genau an seinen usprünglichen Standort setzen?

coolie
03-09-07, 13:18
...sorry, ich meinte natürlich RTNCSRLOC(*WINDOW &1 &2 &3 &4)


Ich dachte ja eigentlich, ich hole mir die alte Position des Cursors über

a) die INFDS Stelle 370/371

oder

b) über RTNCSRLOC(WINDOW &ROW &COL)

und setze diese bei erneuter Ausgabe des Formats auf CSRLOC(&ROW &COL).

coolie
03-09-07, 13:55
Ok, hab's mittlerweile gefunden.

Bei einem Window müssen bei der INFDS die Stellen 382/383 verwendet und in die in die CSRLOC-Parameter übertragen werden. :D