So where is the problem ? DEoesn't a doscroll(2) in grid.refresh work ? If non ordered :
local lcSel, lnRecs, lnCurRec
DoDefault()
lcSel=Select()
select (This.recordsource)
lnCurRec=recno()
count to lnRecs
locate record lnCurRec
if int((This.height - This.headerheight)/This.rowheight) > lnRecs
This.DoScroll(2)
endif
select (lcSel)
Cetin
>Cetin,
>
>Both the same alias * and * the row appears at top of visible grid as if it is the only one and scrolling is needed. This only occurs if the last row is selected and editing occurs in another form in the formset. As I return from the other form I do a doscroll(2) and (3) or vice versa. If the 2nd to last row (or some other row) is edited this does not occur.
>
>>Allan,
>>Do they both use the same alias (not table) ? Or do you mean you're on correct record but displayed at top of grid (as if it were the only one - scrolling up needed).
>>
>>Cetin
>>
>>>Cetin,
>>>
>>>I found that using the doscroll(2) and (3) seems to work in * most * cases. I found the idea here (probably one of your suggestions to fix another problem :)).
>>>However, I still have a problem in * one case * when I refresh the grid as follows and the problem is not related to changing the position of the rows in the grid.
>>>If the # of rows in the alias exceeds the # of rows in the grid and I edit the last row in another form in the formset the grid displays incorrectly when refreshed. Even after invoking the two doscrolls, the only row that displays is the last IE the other rows are scrolled off the top of the grid.
>>>
>>>