-
Display Attribute Hex
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
-
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
-
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.
-
Ups. Wie kann ich mir denn die relative Anfangsposition eines Feldes ermitteln ?
-
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
-
Ja so kenn ich das auch.
Danke für die Hilfe.
Viele Grüsse Harald
-
Es gibt allerdings ein etwas kompliziertes API, aus dem du zur Laufzeit die Informationen extrahieren kannst:
Retrieve Display File Description (QDFRTVFD) API
Im Row-Column Table (QDFFRCTB) findest du die benötigten Info's.
-
Feldpositionen
 Zitat von harkne
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
-
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.
-
Cursor
 Zitat von Fuerchau
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
-
Geht doch
 Zitat von Fuerchau
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.
Aber es geht doch.(Aber ohne Namen)
INFDS Stelle 370-371 B 0 #CURSOR
Eine DS
#C_LINE 1 3 0
#C_POS 4 6 0
Direkt nach EXFMT
folgender Code
#CURSOR DIV 256 #C_LINE
MVR #C_POS
Damit bekommst Du die Cursoposition NACH Datenfreigabe, Jetzt die Felder retten und bei einem Fehler wieder setzen (Felder Zeile/Spalte)
-
INFDS Stelle 370-371 B 0 #CURSOR
Eine DS
#C_LINE 1 3 0
#C_POS 4 6 0
Direkt nach EXFMT
folgender Code
#CURSOR DIV 256 #C_LINE
MVR #C_POS
Warum definierst Du ein 2-Stelliges Feld Binär und dividierst dann durch 256 und ermittelst den Rest?
Wenn Du statt dessen Stelle 370 (Zeile) als Integer definierst und Stelle 371 (Spalte) ebenfalls als Integer kannst Du Dir die ganze Recherei sparen!
PHP-Code:
D SAVINF DS
D DDSFKY 369 369
D DDSRow 370 370I 0
D DDSCol 371 371I 0
*------------------------------------------------
/Free
Select;
When DDSFky = F04 and BSFeld = 'FELD1';
//Aufruf Matchcode
CsrRow = DDSRow;
CsrCol = DDSCol;
EndSL;
/End-Free
Den Cursor wieder auf die gleiche Position zu setzen ist einfach. Schwierig wird es, wenn man, z.B. im Fehler-Fall den Cursor auf ein bestimmtes Feld positionieren will. Dann hilft die Datei-Status-Datenstruktur nicht weiter. Dann hilft nur noch das API QDFRTVFD (wie Baldur bereits vorgeschlagen hat).
Unter dem folgenden Link ist übrigens eine Prozedur zu finden, in dem die Zeile und Spalte für ein beliebiges Feld über das API QDFRTVFD ermittelt wird:
ILE Procedure for using Display File API's
Birgitta
Similar Threads
-
By kuempi von stein in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 28-11-06, 05:48
-
By Weki in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-10-06, 11:40
-
By asb_salem in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 21-03-06, 13:32
-
By GEGE in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-02-05, 07:45
-
By chr in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 12-02-01, 15:55
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks