Suppose you want to scan a tabular grid block (loop through all records in detail block) from top to bottom in Oracle forms. You can do this task by using :system.last_record system variable to determine whether it is last record in a block and then exit.
Example:
Begin
go_block('yourblock');
--- then move to first record
first_record;
Loop
--- do some processing
null;
if :system.last_record = 'TRUE' then
exit;
End if;
next_record;
End Loop;
--- after exiting move to top
first_record;
End;