有办法取得当前记录号吗,除RECN()外.

linkany 2003-08-20 03:22:20
即使使用SET DELE ON时
RECN()返回的也是含有删除标记记录的整张表的当前记录号
有没有完全排除有删除标记记录后的,取得当前记录号的函数和办法?
...全文
103 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
linkany 2003-08-24
  • 打赏
  • 举报
回复
既然清风都用上RAND了,那还是我来平衡一下,拿分少的兄弟们可不要生气呀;-)
dfwxj 2003-08-24
  • 打赏
  • 举报
回复
sorry,上面的代码错了一句,

name(2)=m'gan(很笨 ,很笨的鸟! 想先飞) '

应该为

name(2)='mgan(很笨 ,很笨的鸟! 想先飞) '

忙里出错了
linkany 2003-08-23
  • 打赏
  • 举报
回复
虽然我的问题没有得到很好解决,还是十分感谢各位热情帮助
真不知道这20分应该如何分配?
dfwxj 2003-08-23
  • 打赏
  • 举报
回复
mgan(很笨 ,很笨的鸟! 想先飞)

说得对啊,
所以就让楼主这样分配啊~~~~
mgan 2003-08-23
  • 打赏
  • 举报
回复
dfwxj(清风)兄
有意思
我认为分数是小事情啊
关键是参与啊
——————————@_@————————
good good study
day day up
___________________^@^________________
dfwxj 2003-08-23
  • 打赏
  • 举报
回复
linkany(linkany) :

请你用如下程序进行分数分配:

dime name(5),fs(5)
name(1)='szjhxu(天野)'
name(2)=m'gan(很笨 ,很笨的鸟! 想先飞) '
name(3)='Foxer(狐狸)'
name(4)='dfwxj(清风)'
name(5)='fj_jiangqi(强盗)'
fs=0
n=20
do while n>0
mname=int(rand()*5)+1
mfs=int(rand()*n)+1
fs(mname)=fs(mname)+mfs
n=n-mfs
endd
wait wind name(1)+str(fs(1))+chr(13)+;
name(2)+str(fs(2))+chr(13)+;
name(3)+str(fs(3))+chr(13)+;
name(4)+str(fs(4))+chr(13)+;
name(5)+str(fs(5))
retu




fj_jiangqi 2003-08-20
  • 打赏
  • 举报
回复
先保存下一条记录,然后删除,最后定位保存的记录
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
dfwxj 2003-08-20
  • 打赏
  • 举报
回复
针对你的要求编一个函数给你,getrecn()
func getrecn
mrecn=recn()
coun to mrecc for !dele()
if mrecc=0
retu 0
endi
newrec=1
go top
do while recn()<mrecn()
newrec=newrec+1
skip
endd
if recn()#mrecn
go mrecn
endi
retu newrec

Foxer 2003-08-20
  • 打赏
  • 举报
回复
用Grid试试看
mgan 2003-08-20
  • 打赏
  • 举报
回复
不知道 你具体做的东西 所以无法提供准确答案
但是 你可以 不用list啊
把要显示的控件与数据源绑定
然后通过 skip 可以了啊
linkany 2003-08-20
  • 打赏
  • 举报
回复
我用的是SKIP,但我还要点亮LIST1中的记录条呀,除了
THISFORM.LIST1.SELECT(I)=.T.外,我想不到其它办法了,
而SELECT(I)中的I,只能是RECN()返回:-(
mgan 2003-08-20
  • 打赏
  • 举报
回复
你可以用skip 命令
下一条 就是 skip 1
mgan 2003-08-20
  • 打赏
  • 举报
回复

set dele on 除以下情况外 各命令对有删除标记的记录不做处理
1.命令<范围>为record 指定
2.index 和 reindex 命令的操作
所以你最好不要用recn()返回

linkany 2003-08-20
  • 打赏
  • 举报
回复
我现在是在一个LIST中打开一张表,做了几个命令按钮移动记录,可在按"下一条"按钮时,因为有删除的记录存在,LIST中的记录总跳到错误位置.代码如下:
set dele on
...
i=recno()
thisform.list1.selected(i)=.t.
linkany 2003-08-20
  • 打赏
  • 举报
回复
我现在是在一个LIST中打开一张表,做了几个命令按钮移动记录,可在按"下一条"按钮时,因为有删除的记录存在,LIST中的记录总跳到错误位置.代码如下:
set dele on
...
i=recno()
thisform.list1.selected(i)=.t.
szjhxu 2003-08-20
  • 打赏
  • 举报
回复
记录号是数据在表中的物理序号,除非你物理删除记录,否则永远能用RECNO()读取

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧