| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1134 人关注过本帖
标题:请教关于含有逻辑删除数据的表,如何实现“上一条”“下一条”代码?
只看楼主 加入收藏
ffyy
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-12-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请教关于含有逻辑删除数据的表,如何实现“上一条”“下一条”代码?
我的“上一条”代码是
If Bof()
    Messagebox("已经是第一条纪录!",0,"纪录情况",1500)
    This.Enabled=.F.
Else
    Skip -1
********
    Thisform.Refresh
Endif

“下一条”代码是:
If Eof()
    Messagebox("已经是最后一条纪录!",0,"纪录情况",1500)
    This.Enabled=.F.
Else
    Skip 1
**********
    Thisform.Refresh
Endif

因为表首和表尾都存在逻辑删除数据,结果“下一条”到最后一条记录时,能提示"已经是最后一条纪录!",但“上一条”到了可用的第一条记录后,什么也不会显示(因为没有到物理第一条?)。什么原因呢?怎么解决好啊?
搜索更多相关主题的帖子: 记录 如何 
2012-01-30 23:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不大明白你的意思。一般檢測到BOF()標誌時就Goto Top,檢測到EOF()就Goto Bottom,沒有你說的現象。

授人以渔,不授人以鱼。
2012-01-31 00:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
你要明白,BOF()和EOF()都是處於記錄指針越界狀態下得到的真值。在你的這個代碼中,記錄本來已經處於第一條記錄,而你先檢測BOF(),此時得到假值,於是SKIP -1,結果越界出錯,後面的EOF()也一樣。

正確的檢測辦法,是先SKIP -1,然後檢測BOF()是否為真,如果為真,則GOTO TOP返回第一條記錄,為假的話,就已經SKIP -1了,正好。

授人以渔,不授人以鱼。
2012-01-31 01:23
apple0072011
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:249
专家分:989
注 册:2011-8-17
收藏
得分:10 
set filter to !deleted()

天道酬勤
2012-01-31 08:12
ffyy
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-12-11
收藏
得分:0 
谢谢TonyDeng、apple0072011!
2012-01-31 18:01
lygcw9603
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:233
专家分:357
注 册:2006-8-27
收藏
得分:0 
回复 楼主 ffyy
“上一条”代码是:
Skip -1
If Bof()
    Messagebox("已经是第一条纪录!",0,"纪录情况",1500)
    This.Enabled=.F.
GO TOP
Else
Endif
Thisform.Refresh

“下一条”代码是:
Skip 1
If Eof()
    Messagebox("已经是最后一条纪录!",0,"纪录情况",1500)
    This.Enabled=.F.
    GO BOTTOM
Else
Endif
Thisform.Refresh

2012-01-31 18:06
ffyy
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-12-11
收藏
得分:0 
终于找到原因了:因为在初始化时运行了count to nRow命令后,指针指向eof()的位置,所以执行“下一条”时总是出现越界的错误。
在执行count to nRow之后,将指针复位,问题便解决。
2012-01-31 18:32
快速回复:请教关于含有逻辑删除数据的表,如何实现“上一条”“下一条”代码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040770 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved