PDA

View Full Version : Cursorposition setzen



Seiten : [1] 2

thluetjen
22-08-02, 09:01
Hallo,

ich möchte unter ILE-RPG den Cursor an eine
bestimmte Position im Bildschirm setzen.
Wie geht das. Muß ich die INFDS nutzen?

Gruß, Thorsten

holly
22-08-02, 10:37
Hallo,
anbei RPG III-Anweisungen und DDS-Zeilen für das Cursor ermitteln und setzen:
C*
C* Unterroutine GETLOC FÜR 24 x 80
C* Cursor-Pos aus Dateistatusdatenstruktur lesen
C* C*
C* CURSOR POSITION BESTIMMEN
FN3XDSPF CF E WORKSTN KINFDS INFDS
IINFDS DS
I B 370 3710CURSOR
C EXFMTN3X01
C CURSOR DIV 256 ROW 30
C MVR COL 30
C*
C* CURSOR POSITIONIEREN MIT DDS
A R FMT01 RTNCRSLOC(&CSRRCD +
A &CSRFLD +
A &CSRPOS)
A 05 CSRLOC(ROW COL)
A CSRRCD 10A H
A CSRFLD 10A H
A CSRPOS 4S0 H
A ROW 3S0 H
A COL 3S0 H
A OPTION 1A B 1 2
A CUSNBR 7S0 B 1 5

Gruß Holger

[Dieser Beitrag wurde von holly am 22. August 2002 editiert.]

alex
23-08-02, 06:18
Du kannst für die Cursorpositionierung im Bildschirmfeld eine Bezugzahl
definieren und die im RPG steuern.

Gruss

Fuerchau
23-08-02, 09:54
Es kommt immer darauf an was man möchte.
Im Normalfall soll der Cursor ja auf das Eingabe-Feld gesetzt werden, daß im Fehlerfall zu bearbeiten ist.
Hierzu ist im DDS einzugeben:

A___11___________________DSPATR(PC)

Mit dem setzen der Bezugszahl 11 (eval *in11=*on) wird beim nächsten write des Satzformates der Cursor auf den Anfang des Feldes gesetzt.
Für jedes Eingabefeld muß eine separate Bezugszahl definiert werden.

Dieser Weg ist allen anderen Lösungen vorzuziehen, da bei Verschiebungen des Feldes auf dem Schirm das Programm nicht geändert werden muß.

Mr.iSeries
15-11-07, 13:59
Hallo!

Wenn ich in einer DSPF das Schlüsselwort
RTNCRSLOC angebe dann kommt bei mir immer dass dieses Schlüsselwort für diese Dateiart nicht zulässig ist? Habe schon im Handbuch nachgeschaut aber nichts gefunden... Ist doch für DSPFs oder :confused:

Fuerchau
15-11-07, 14:06
Schreibfehler ?

RTNCSRLOC (Return Cursor Location) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfrtncs.htm?resultof=%22%72%74%6e%63%73%72 %6c%6f%63%22%20)

Mr.iSeries
15-11-07, 14:54
Schreibfehler ?

RTNCSRLOC (Return Cursor Location) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfrtncs.htm?resultof=%22%72%74%6e%63%73%72 %6c%6f%63%22%20)

Stimmt :)

Ist heut glaub ich wirklich nicht mein Tag... muss wohl am Wetter liegen...:rolleyes:

Vielen Dank!!!

Mr.iSeries
16-11-07, 09:37
Hallo,
anbei RPG III-Anweisungen und DDS-Zeilen für das Cursor ermitteln und setzen:
C*
C* Unterroutine GETLOC FÜR 24 x 80
C* Cursor-Pos aus Dateistatusdatenstruktur lesen
C* C*
C* CURSOR POSITION BESTIMMEN
FN3XDSPF CF E WORKSTN KINFDS INFDS
IINFDS DS
I B 370 3710CURSOR
C EXFMTN3X01
C CURSOR DIV 256 ROW 30
C MVR COL 30
C*
C* CURSOR POSITIONIEREN MIT DDS
A R FMT01 RTNCRSLOC(&CSRRCD +
A &CSRFLD +
A &CSRPOS)
A 05 CSRLOC(ROW COL)
A CSRRCD 10A H
A CSRFLD 10A H
A CSRPOS 4S0 H
A ROW 3S0 H
A COL 3S0 H
A OPTION 1A B 1 2
A CUSNBR 7S0 B 1 5

Gruß Holger

[Dieser Beitrag wurde von holly am 22. August 2002 editiert.]

OK Fehler lag hier

Hätt da aber noch ne Frage...
Hab mir ein Beispielprogramm gemacht und klappt soweit ganz gut...
Wenn ich z.b. auf 7/28 bin will ich dass das Programm auf das Feld darunter sprint... jedoch ist auf Zeile 7 rechts daneben noch ein Feld...hier springt er natürlich zuerst hin... habe abgefragt wenn der cursor auf 7/28 ist dann setze ich eine Bezugszahl die ich beim Feld darunter bei CHECK(PC) gesetzt habe...
Das Problem ist natürlich dass zuerst die Datenfreigabetaste gedrückt werden muss sonst wird ja die Steuerung nicht an das Programm übergeben.

Gibt es noch eine andere Möglichkeit dass zuerst auf dem Feld darunter positioniert wird ohne dass ich Datenfreigabe drücke?

Fuerchau
16-11-07, 10:50
Wie wärs hiermit ?

FLDCSRPRG (Cursor Progression Field) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstfldcsr.htm)

USDAVIS
16-11-07, 10:55
Hallo,

für solche Fälle gibt es das Schlüsselwort
FLDCSRPRG (Cursor Progression Field).

Anwendung: FLDCSRPRG(FELDNAME)

Gruss
Ulli

Hupps, war ich wohl zu spät. Wie kann ich denn
diese Antwort löschen?