PDA

View Full Version : Tabulatorsteuerung in Displayfile



Daechsle
05-06-14, 09:23
Hallo Welt

Ein Displayfile besteht z. B. aus 4 Feldern.
Wenn der Cursor im 2. Feld steht und die Tabulator-Taste gedrückt wird, soll der Cursor auf das 4. Feld positioniert werden. Wenn aber das 2. Feld vollkommen mit Text ausgefüllt wird, soll automatisch auf das 3. Feld gesprungen werden.

Ist das überhautpt möglich und wenn ja wie?

Mit FLDCSRPRG funktioniert das zwar mit der Tabulator-Taste, aber es wird dann auch nach dem kompletten Ausfüllen von Feld 2 auf Feld 4 (und nicht auf Feld 3) gesprungen.

Schöne Grüsse aus der Schweiz

Fuerchau
05-06-14, 09:56
Das ist leider nicht automatisch möglich.
Hier musst du mit CHECK(ER) auf Feld auf Feld2 arbeiten und nach "Autoenter" selber entscheiden ob du auf Feld3 oder Feld4 mit DSPATR(PC) positionierst.

Daechsle
05-06-14, 13:17
Danke für die Antwort.
Aber wie kann ich unterscheiden, ob die Enter-Taste gedrückt wurde oder "Autoenter" eingetreten ist?

Sowohl mit VLDCMDKEY(25 'Enter') als auch mit Cmdkey = CmdEnter komme ich hier immer auf dasselbe Ergebnis (also keine Unterscheidung möglich).
VLDCMDKEY(25 'Enter')

Read more at: http://archive.midrange.com/rpg400-l/200509/msg00005.html © midrange.com

Robi
05-06-14, 13:49
bei autoenter ist das feld 2 voll

Fuerchau
05-06-14, 14:29
Die Unterscheidung gibt es tatsächlich nicht (ggf. findet man da was auch in der INFDS).
Autoenter wird ausgelöst, wenn alle Zeichenpositionen eingegeben werden.
Dies passiert auch, wenn halt auf der letzten Stelle ein Blank erfasst wird.
Mit "Eingabe+" wird das Feld bis zum Ende mit Leerzeichen gefüllt, also auch dann Autoenter ausgelöst.
Wenn deine Steuerung also vom letzten Zeichen abhängt, dann musst du dieses auch prüfen "%subst()".

Bedenke aber, dass du dann bei jedem Enter immer wieder auf die Felder positionierst.
Also musst du auch noch die Cursorposition abfragen wann Enter gedrückt wurde, da das ja nur auf diesem Feld relevant ist.

Warum muss es so kompliziert werden?
Lass doch die Cursor-Steuerung und mach eine vernünftige Feldprüfung.
Bei mir klappt das so seit 22 Jahren :).