PDA

View Full Version : Cursor in Subfile - Cobol



Anette
24-07-06, 12:13
Hallo an alle,

ich habe hier ein Cobol-Programm, das eine Subfile ausgibt, die Eingabefelder beinhaltet. Der Anwender kann also Eingaben machen, die ich abprüfen muss.
Das Einlesen der Subfile und prüfen der Felder klappt ja, aber was ich einfach nicht schaffe, ist, dass der Cursor genau auf dem Eingabefeld in dem bestimmten Subfile-Satz steht, wo die falsche Eingabe gemacht worden ist. Bei mir steht der Cursor immer auf dem 1. Satz in der Subfile. :D Kann mir da jemand weiterhelfen ?
Vielen Dank schon mal im voraus
Anette

kuempi von stein
24-07-06, 13:36
Hello,

man kann im DDS steuern, wo der Cursor stehen soll.
Zauberwort ist DSPATR(PC).
Wenn Du das dann noch per Bezugszahl an/aus schaltest in Deiner Fehlerroutine, kannst Du auf jedes gewünschte Feld hinsteuern.

k.

HDuernfeld
24-07-06, 13:59
Hallo Anette,
leider klappt das mit dem DSPATR(PC) nicht, wenn man mit einer Bezugzahl auf ein Subfilefeld in einem SFL-Format Bezug nehmen möchte.
Meiner Meinung nach geht das nur in einem NICHT-SFL-Format.
Grüsse, Hans

kuempi von stein
24-07-06, 14:05
Ups... daran hatte ich gar nicht gedacht.
Stimmt, der geht dann vermutlich immer auf das erste Feld mit der BZ.
Mist...

Sorry Anette.

:-)

kuempi von stein
24-07-06, 14:24
Um so länger ich über die Geschichte nachdenke, um so mehr denke ich, dass es doch geht.

Ich nutze für Subfiles manchmal eine andere Farbe um auf einen Fehler hinzuweisen!
So wird eben das Feld X in einem Subfilerecord z.B. ROT angezeigt, wenn es fehlerhaft ist.

Um die Konfusion zu vermeiden, dass durch die Bezugszahl ALLE Felder X in allen Subfilerecords ROT angezeigt werden, führe ich zusätzlich noch ein Feld hidden in der Subfile mit, um mir die Bezugszahl zu merken.

Aufgrund des Inhaltes dieses Feldes setze ich vor jedem Schreiben des Satzes in die Subfile die Bezugszahl eben an oder aus.

Wenn das für Farben geht, sollte es doch auch für Cursorpositionierung gehen...?

hier mal ein Beispiel
A R SFLFMT01 SFL
A X1AUSW 1A B 6 2COLOR(WHT)
A XXFELDX 2A O 6 33
A N70 COLOR(GRN)
A 70 COLOR(RED)
A #70 1A H

Gruss

kuempi

benedikt.gerlich
24-07-06, 14:33
Hallo,
man kann beim Schreiben des SFLCTL auch die gewünschte Subfile-Zeile mitgeben. Der Cursor wird dann auf diese Zeile gesetzt.

Wenn es ganz genau sein muss, so kann man auch in der Display DDS mit CSRLOC Zeile und Spalte direkt mitgeben vom Programm aus.

Tschüß Benedikt

mwithake
24-07-06, 15:25
Hallo,

die Cursorsteuerung erledigt man im DDS durch die Erweiterung SFLRCDNBR mit (CURSOR).

Die letzte Satznummer, wo der Cursor stand, kann über SFLCSRRRN(var) ermittelt werden. Wenn sich der Cursor bei Datenfreigabe ausserhalb der Subfile befindet, kann über SFLSCROLL noch die erste Zeile der zuletzt angezeigten Seite ermittelt werden.

Gruß
M.Withake

Anette
24-07-06, 20:52
Das klappt tatsächlich mit DSPATR(PC) !! Den Cursor kann mann genauso wie Farben setzen, danke für den Tipp.

Gruß
Anette