Так вызывается
X++:
purchLine_ds.executeQuery()
что и приводит к таким действиям. Возможно можно дописать:
запомнить позицию с помощью
X++:
pos = purchLine_ds.getPosition();
после executeQuery написать
X++:
purchLine_ds.setPosition( pos );
Или же аналогичные действия с SetRecord как вариант