PDA

View Full Version : Subfile auf letztem bearbeiteten Satz aufsetzen



Fertig
14-02-03, 14:13
Hallo Subfile-Spezialisten,

mit meinem ILERPG-Programm kann man aus einer Subfile Sätze durch Eingabe einer Ziffer entweder bearbeiten oder ansehen. Wenn man damit fertig ist, und die Subfile wieder angezeigt wird, soll sie genau bei dem Satz anfangen, der zuletzt bearbeitet/angesehen wurde. Trotzdem soll man auch rückwärts an den Dateianfang blättern können. Es können alle Sätze eingelesen werden, da es weniger als 9999 sind.
Hat jemand eine Idee, wie das geht?

Steven
14-02-03, 14:27
Hi,

ich würde die BLKN des Satzes, der bearbeitet wird abspeichern. Dann beim erneuten Anzeigen die BLKN per Z-ADD wieder auf den abgespeicherten Wert setzen, und dann halt anzeigen. Wenn man zurückblättert einfach 1 von der BLKN abziehen und das Subfile erneut anzeigen.

Fuerchau
14-02-03, 16:05
In der DDS, Satzformat der Subfile (SFL) das Schlüsselwort SFLNXTCHG mit Bezugszahl definieren.
Nach einem EXFMT bzw. WRITE/READ des dazugehörenden SFLCTL-Satzes wird das interne Modified-Flag zurückgesetzt.

Mit READC auf das SFL-Format wird der nächste modifizierte Satz aus der SFL gelesen.
Beim UPDAT entscheidet die Bezugszahl, ob der aktuelle Satz modifiziert bleibt (*ON), z.B. bei Fehler, oder als bearbeitet gilt.
READC kann solange durchgeführt werden, bis entweder die Bezugszahl beim READC bzw. bei ILE/RPG %EOF() gemeldet wird.

Mit den Schlüsselworten SFLCSRRRN sowie SFLPOS im SFLCTL-Format kann die Cursorsteuerung auf dem SFL-Satz durchgeführt werden.

Das Blättern übernimmt das System selbst, es sei denn die Bezugsschlüsselworte ROLLUP/ROLLDOWN werden verwendet.

Mit SFLEND und Bezugszahl, teilt man dem System mit, ob das Ende der Daten erreicht ist, oder noch Daten in die SFL eingestellt werden können.

usw., usw., usw.....

Nachzulesen auf der "OnlineLibrary CD" der AS/400 im Buch "RPG - Anwendungshandbuch" incl. divierser Beispiele.

ERTH
18-02-03, 14:17
Hallo Fertig,

eine einfache Methode zum Subfile-Positionieren ist durch das DDS-Schlüsselwort SFLRCDNBR(*CURSOR).
Beim READC des Subfiles wird einfach die relative Satznummer in das SFLRCDNBR-Feld eingestellt. Bei der nächsten Anzeige befindet sich der Cursor auf dieser Zeile!

Definition in der DDS:
im SFLCTL-Format
CURSOR 4S 0H SFLRCDNBR(CURSOR)

Fertig
21-02-03, 11:28
Hat geklappt. Man muß in der DSPF im Kontrollformat mit F4 ein verdecktes Feld mit Länge 4,0 und den Subdatei-Schlüsselwörtern SFLRCDNBR und *TOP anlegen.
A CRSZEILE 4S 0H SFLRCDNBR(*TOP)
Dann muß man im PGM nur noch vor der Ausgabe des Kontrollformates die Variable CRSZEILE auf den Wert setzen, der die Zeile des zuletzt bearbeiteten Satzes enthält. Diesen Wert wiederrum muß man sich vorher an der richtigen Stelle gemerkt haben.