View Full Version : Knacknuss CNTFLD/WRDWRAP Position
camouflage
13-05-16, 10:43
Wer weiss denn sowas?
Ich möchte die genaue Position innerhalb eines DSP Feldes bestimmen können. Der String wird mittels CNTFLD und WRDWRAP irgendwo im Schirm angezeigt.
Hintergrund:
Auf einer bestimmten Text-Position soll mittels F-Taste noch zusätzliche Informationen eingefügt werden können.
Ganz schön tricky und ich hab keinen Plan.
(Ach ja, Feld, Line und Loc hab ich schon - doch wie wissen wo das Feld anfängt?)
Danke.
Das musst du mit den Informationen selber ausrechnen.
Die Startposition des Feldes gibst du doch in der DDS mit z.B. Zeile 4 Spalte 10 an.
Ist dein Feld nun in 5 Zeilen a 40 Spalten aufgeteilt bekommst du nun raus, wo der Cursor im Feld steht.
Die WRDWRAP-Funktion musst du nun leider noch selber nachbauen (bei Blank umbrechen) um die Zeichenposition auszurechnen. Leider gibt es dafür tatsächlich keine Automatik.
Meine Erfahrung mit wordwrap und cntfld sind eher durchwachsen!
Je nach Emulation wird der String bei wordwrap mit blank ergänzt oder nicht.
D.H. beim auslesen des Strings, z.b. zum drucken in der selben Aufbereitung, sieht das mal ok und mal sch... aus.
Außerdem unterstützen nicht alle Emus den erweiterten 5250 so gut, das WW und CntFld funktioniert
Mach erst mal Tests wie Eure EMU den String speichert.
Robi
Letztlich ist das doch egal, wenn ich nach der Erfassung die mehrfachen Leerzeichen wieder entferne.
camouflage
13-05-16, 12:36
@Robi:
Mit CA funktioniert es ganz gut.
@Baldur:
Hatte gehofft, ich könnte das Ganze unabhängig in einem Serviceprogramm lösen. Dazu hätte ich jedoch dynmisch Anfangszeile und -Position vom Feld gebraucht.
Alternativ ginge natürlich ein Marker und eine F-Taste hinterher. Scan auf den Marker und ich weiss wo einsetzen. Vllt. lös ich's so.
Das kannst du ja trotzdem tun. Du übergibst der Servicefunktion halt die Informationen statisch als Parameter.
Änderst du die DSPF musst du ja sowieso meist auch das Programm anpassen so dass du die Startposition dynamisch(manuell) statisch (im Programm) ändern kannst.