Es sei vielleicht zur READ Operation noch eines zu erwähnen:
READ liest den nächsten Satz ein, auch wenn sich der Pointer auf BOF (Beginn of file) befindet.

READE kann mit oder ohne KLIST verwendet werden. In jedem Fall muss mit einem CHAIN oder SETLL der Pointer von BOF runtergenommen worden sein.
Ist das geschehen, so hat ein READE ohne KLIST die gleiche Auswirkung wie ein READ.
Mit KLIST ist es wirklich so, dass der nächste Satz mit genau dem gleichen Schlüssel eingelesen wird.

Zu deinem Programm:
Bei SETLL und READE mit gleichem Schlüssel entspricht das einem CHAIN. Der CHAIN sucht den Satz, der mit den zu diesem Zeitpunkt enthaltenen Daten im Key genau heraus, und liefert dir alle Daten zurück.

Randnotiz, weil viele "Neulinge" das nicht wissen:
Du musst in der KLIST nicht unbedingt die Dateifelder verwenden. Zum aufsetzen (wie im anderen Thread) kannst du durchaus auch andere Felder verwenden. Einzige Voraussetzung: Gleiche Felddefinition Länge und Art (Numerisch, alpha)

Grüsse Marcus