atFirst( ) example
The following onNavigate event handler sets the enabled properties of the navigation buttons on a form, based on the return values of atFirst( ) and atLast( ).
function Rowset_onNavigate
if this.endOfSet
return // Do nothing if end-of-set
endif
local lBackward, lForward
lBackward = not this.atFirst( )
lForward = not this.atLast( )
with this.parent.parent
buttonFirst.enabled := lBackward
buttonPrev.enabled := lBackward
buttonNext.enabled := lForward
buttonLast.enabled := lForward
endwith
The event handler does nothing if the rowset is at the end-of-set, expecting that the row cursor will be moved in the reverse direction of the navigation. If the navigation attempt was forward, the row cursor would be moved back to the last row, and if the navigation attempt was backward, the row cursor would be moved forward to the first row. In this way, the rowset is never on the end-of-set. This technique cannot be used for rowsets where there may not be any matching rows.