oldalias=alias()
sele 编号 from &oldalias order by 编号 desc into cursor temp
sele temp
go top
m.maxno=编号 &&编号 必须是字符型
m.oldno=val(m.maxno)
m.newno=str(m.oldno+1,4)
m.newno=strtran(m.newno," ","0")
sele temp
use
sele(oldalias)
appe blank
repl 编号 with m.newno
如果填补空号:
oldalias=alias()
sele 编号 from &oldalias order by 编号 desc into cursor temp
sele temp
go top
n=0
do while !eof()
n=n+1
m.maxno=val(编号)
if n<>m.maxno
m.maxno=val(编号)-1
exit
endif
skip
enddo
m.oldno=m.maxno
m.newno=str(m.oldno+1,4)
m.newno=strtran(m.newno," ","0")
sele temp
use
sele(oldalias)
appe blank
repl 编号 with m.newno
解决办法
sele hhdj(数据库名)
do while .t.(设定一个循环)
if flock()(先把数据库锁起来)
go bottom
bh1=hhdj.bh+1(hhdj为数据库的编号字段)
append blank
repl bh with bh1
exit(退出循环)
endif
enddo
这样其他用户只能等你取完“自动编号”才到下一个,这个动作很快大家感觉不到的。