有一个表单,表单上有一个自由表
表单里的init里有如下命令:
CALCULATE Sum(值) To nMaxID 或 此条命令改成 sum all 值 to nMaxID
thisform.label1.caption=alltrim(str(nMaxID))
运行表单时,指录指针却直接到最后一行了.
在对表的操作中,如:现在对第N行记录进行删除操作,同样要运行上述二条命令,
可是一旦运行上述二行后,记录指针又一下到末行了....而不能保持原来的第N行.
不知如何改,才能不让记录指针移动...请老师指导.
------解决方案--------------------------------------------------------
前面获取记录号
m.Number = recno()
你的语句
go (m.Number)
如果进行删除操作,还要判断一下m.Number是否大于表的总条数
------解决方案--------------------------------------------------------
oldrecn=recno() &&保存当前记录号
*----如果是进行统计操作,统计结束后回到原位置
go oldrecn
*----如果是进行删除操作,还要判断删除操作前记录的位置
do case
case recno()=reccount() &&当前记录是最后一条记录
delete next 1
pack
skip -1
case recno()<reccount() and recno()>1 &&当前记录不是最后一条记录,也不是第一条记录
delete next 1
pack
*----此时有两种情况,一种是记录向后移动,一种是记录向前移动
skip -1 &&向后移动
或者
skip 1 &&向前移动
case recno()=1 &&当前记录是第一条记录
delete next 1
pack
skip 1 &&记录向前移动
endcase
只有这样删除操作后,才不会发生错误(前提是不使用数据缓冲区)