VFP dbf表 自顺新增序号的问题

发布时间:2024-06-01 18:01 发布:上海旅游网

问题描述:

我有一个dbf表和一个form,有两个字段,一个为"序号",另一字段为"单号"

我想达到这样一种效果:
我在form中每输入一行记录时,
自动在"序号"要栏填充顺序号.00001、00002、00003.....

还要达到这样的效果。
比如现在表中有10行记录,这10行记录对应的"序号"为空值.
我新增第11行时,自动填充前面10行的序号。同时填充第11行的序号为00011
新增第十二行时,填充序号00012......依此类推。

望高手指点.
大哥.我要代码啊.我是新手仔

我有一个dbf表"stone",有两个字段"序号"、"单号"
有一个form ,form中有一个grid1 ,数据源是stone.
还有一个text1,和1个命令按扭"保存"

要求1.
在text1中输入第一笔记录,按"保存"后,值存到dbf的单号一栏的同时,dbf表的"序号"一栏自动填充00001,输入第二笔记录时,"序号"一栏自动填充00002......

要求2.
假如dbf表中有100行记录,我删除第49行,“序号”一栏的数值怎样才能进行自动调整? 也就是说将"序号"一栏的数重新调整为00001-00099.

我之前用dbf表的"自动增量"功能,但,我删除一行记录后,这行记录所对应的"序号"也会删除。不是我想要的效果。

请问高手。我该如何做到。要有代码。谢谢.

问题解答:

保存按钮代码如下:
SELE STONE
APPE BLAN
REPL 单号 WITH THISFORM.TEXT1.VALUE
REPL 序号 WITH SUBS(LTRIM(STR(100000000+RECNO(),10,0)),5,5) ALL
&&&注序号必须是字符型,否则前00显示不出来
删除按钮代码如下
SELE STONE
DELE
PACK
REPL 序号 WITH SUBS(LTRIM(STR(100000000+RECNO(),10,0)),5,5) ALL

***你试一下,看行不行

cn=thisform.text1.value '取最后一个最大的已经生成的序号的值
n1=len(alltrim(str(val(cn))))
n2=len(alltrim(cn))
CNEW=REPLICATE("0",n2-n1)+alltrim(str(val(cn)))

OK
DONE

应该写一段重新生成序号的代码。
1。不进行检测,直接从第一个开始自动生成
2。判断做出修改的记录,从此记录开始重新计算生成。

热点新闻