PDA

View Full Version : Display Attribute Hex



Seiten : [1] 2 3 4

harkne
16-03-07, 14:20
Hallo zusammen,

ich bin auf der Suche nach einer vollständigen Liste von Hex-Werten für Display Attribute und Farben. Ich habe zwar im Moment eine vor mir liegen aber da finde ich kein DSPATR(PC).
Kann mir da jemand weiter helfen ?

Vielen Dank für Eure Mühe

Viele Grüsse Harald

Fuerchau
16-03-07, 14:23
PC (PositionCursor) ist auch kein Feldattribut sondern eine Funktion des 5250-Datenstromes.

Per DSPATR(PC) wird die Cursorposition des Feldes in den Datenstrom gestellt.
Sind mehrere DSPATR(PC) aktiv, gilt nur der erste.
Um den Cursor dynamisch zu positionieren gibt es 2 Methoden:
a) über Zeile/Spalte
b) über Feldname und rel. Anfangsposition im Feld

harkne
16-03-07, 14:27
ah ok, danke, hilft mir schon. Über Zeile und Spalte ist es eher ungeschickt wenn das Feld verschoben wird muß man immer daran denken. Aber über Feld hört sich schon besser an.

harkne
16-03-07, 14:36
Ups. Wie kann ich mir denn die relative Anfangsposition eines Feldes ermitteln ?

Fuerchau
16-03-07, 15:11
Da hatte ich wohl eine falsche Erinnerung.
Man kann zwar per RTNCSRLOC den Feldnamen und die Position bekommen, umgekehrt gehts leider nicht.
Wenn also ein Feld verschoben wird, muss das Programm angepasst werden.

CSRLOC (Cursor Location) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfcsrlc.htm)

harkne
19-03-07, 06:48
Ja so kenn ich das auch.

Danke für die Hilfe.

Viele Grüsse Harald

Fuerchau
19-03-07, 07:46
Es gibt allerdings ein etwas kompliziertes API, aus dem du zur Laufzeit die Informationen extrahieren kannst:
Retrieve Display File Description (QDFRTVFD) API (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qdfrtvfd.htm)

Im Row-Column Table (QDFFRCTB) findest du die benötigten Info's.

DKSPROFI
19-03-07, 09:28
Ups. Wie kann ich mir denn die relative Anfangsposition eines Feldes ermitteln ?

Moin,

das geht viel einfacher:

Definiere in der Displayfile folgendes:

RTNCSRLOC(&RTNFLD)

A RTNFLD 10A H

Im Programm kannst Du dann das Feld abfragen:

if rtnfld = 'Feldname'
dann mach was


Dann kann Dir die Position völlig egal sein und kannst es versetzen, verschieben usw.

mfg an *all

Fuerchau
19-03-07, 12:36
Das betrifft das erhalten der Cursor-Position, aber nicht das Setzen !
Beim Setzen des Cursors muss man immer noch Zeile/Spalte angeben (oder DSPATR(PC)).
Schön wäre es, auch hier einen Feldnamen anzugeben.

DKSPROFI
19-03-07, 14:03
Das betrifft das erhalten der Cursor-Position, aber nicht das Setzen !
Beim Setzen des Cursors muss man immer noch Zeile/Spalte angeben (oder DSPATR(PC)).
Schön wäre es, auch hier einen Feldnamen anzugeben.

Leider ist es ja so....

irgendwas ist immer

mfg