PDA

View Full Version : Cursor gezielt auf Fehlerfeld setzen ohne Indikatoren im DDS



coolie
01-06-04, 12:40
Hallo Forum,

mal eine ganz primitive Frage. Wie kann ich erreichen, daß der Cursor auf ein fehlerhaft eingegebenes Feld gesetzt wird, ohne im DDS mit einer Bezugszahl für z. B. DSPATR(PC) arbeiten zu müssen.

DSPATR(RI)-Attribute usw. setzen via Programmfeld ist mir ja bekannt, aber damit kann ja kein DPATR(PC) angegeben werden.

Und die Lösung via CSRLIN/CSRPOS erscheint mir als keine besonders tolle Lösung, da ich ja hier die Feldposition "hart" codieren müsste.

Gibt es eine Möglichkeit, ein Programmfeld mit dem Feldnamen des fehlerhaften Feldes zu füllen, damit der Cursor bei der Formatausgabe dann in dem fehlerhaften Feld positioniert wird?

MfG
coolie

B.Hauser
01-06-04, 13:44
Hallo Coolie,

wenn Du den Cursor ohne Bezugszahl und ohne Hardcoding positionieren willst, hast Du nur die Möglichkeit über API QDFRTVFD (Retrieve Display-File-Description) zu gehen.

Sei gewarnt, das ist eines der komplexesten APIs die es gibt, mit jeder Menge verschachtelter Datenstrukturen, Offset-Angaben usw.

Ich habe gerade einen Link gefunden, mit einem Beispiel-Programm, das Zeile und Spalte aus Datei, Format und Feldname ermittelt.
Probier's aus:
ILE Procedure for using Display File API's (http://www.as400pro.com/TipsRPG12.htm#7)

Birgitta

Fuerchau
01-06-04, 15:17
Aber Vorsicht:
Zeile/Spalte wird erst ab V5R2 geliefert.

Wenn das programm sich darauf verläßt und auf einem früheren Release eingesetzt wird funktionierts nicht.

Aber warum wehren sich alle gegen Bezugszahlen im DDS ?
Solange ich noch Green-Screens programmiere verwende ich auch weiterhin Bezugszahlen. Dieses herumdoktoren, zwanghaft Methoden zu entwickeln oder zu suchen um Bezugszahlen zu umgehen finde ich absolut Zeit- (und Geld-) verschwendung.
Bezugszahlen sind nun mal das einfachste beim DDS-Displayfile !!!
Und bisher bin ich immer mit den 99 verfügbaren ausgekommen und für die Tasten stehen ja sowieso die *INKx-Indikatoren zur Verfügung.

Man kann sich auch nen Knopf an die Backe nähen ............

B.Hauser
01-06-04, 16:26
Aber Vorsicht:
Zeile/Spalte wird erst ab V5R2 geliefert.

Wenn das programm sich darauf verläßt und auf einem früheren Release eingesetzt wird funktionierts nicht.


Das glaube ich nicht so ganz!
Ich habe ein Hilfsprogramm, das über QDFRTVFD geht und Zeilen und Spalten über Datei, Satz-Format und Feld ermittelt. Das ist bereits unter V4R4M0 gelaufen.

Birgitta

Fuerchau
01-06-04, 21:29
Dann scheint ja das API schon früher mehr geliefert zu haben als z.B. der DSPFFD (der ja eigentlich auf dem API basiert). Der DSPFFD liefert Zeile/Spalte aber erst seit V5R2.

Naja, ich nutze ja sowieso Bezugszahlen für DDS-Display/Printer und brauch mir deshalb keine Sorgen machen.