Die Abfrage %eof() ist hier falsch, da ein Chain %found() setzt und %eof() der letzten READ-Operation nicht zurücksetzt.

Frage also

if %found();
endif;

ab.