主题:自动编号
fifi331
[专家分:0] 发布于 2008-06-02 15:59:00
请问下从1开始的自动编号代码怎么写?
即 1,2,3,4,5,6。。。。。。
回复列表 (共6个回复)
沙发
alpen [专家分:1140] 发布于 2008-06-02 20:20:00
a=1
do while a<1000
a=a+1
?a
enddo
板凳
l021126 [专家分:660] 发布于 2008-06-03 11:10:00
如果是表里的一字段为自动编号,可以让其等于recn()
3 楼
wuzhouhong [专家分:10890] 发布于 2008-06-05 11:16:00
编号=recn()不是不可以,但是除非你的纪录是加入后永远不会再删除,就可以使用。
否则,你想,原来是10个纪录,编号1-10,我把5#纪录删除了,剩下的编号仍然是1-10(少了5),这时候再插入一个新纪录,按编号=recn()规则,他的编号=10,不就重复了吗。
4 楼
l021126 [专家分:660] 发布于 2008-06-05 15:06:00
如果是表里的一字段为自动编号,且为字符型,可以让其等于recn()
如果是dbc中的表,可以设置:
自动编号字段的默认值=PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
自动编号字段的字段有效性规则=自动编号字段_vali_rule(自动编号字段)
然后在存储过程中写下如下代码
** 自动编号字段验证规则
PROCEDURE 订单号_vali_rule
LPARAMETERS 自动编号字段_
IF 自动编号字段_#PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
ENDIF
如果是自由表设字段编号字段也可=RECN()
当有记录删除时,PACK后加一句代码:
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0") ALL
5 楼
wuzhouhong [专家分:10890] 发布于 2008-06-06 10:49:00
如果是自由表设字段编号字段也可=RECN()
当有记录删除时,PACK后加一句代码:
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0") ALL
编号都不固定,那要这个“自动编号”字段还有意义吗?
6 楼
南平午丁 [专家分:350] 发布于 2008-06-06 23:26:00
[quote]如果是表里的一字段为自动编号,且为字符型,可以让其等于recn()
如果是dbc中的表,可以设置:
自动编号字段的默认值=PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
自动编号字段的字段有效性规则=自动编号字段_vali_rule(自动编号字段)
然后在存储过程中写下如下代码
** 自动编号字段验证规则
PROCEDURE 订单号_vali_rule
LPARAMETERS 自动编号字段_
IF 自动编号字段_#PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0")
ENDIF
如果是自由表设字段编号字段也可=RECN()
当有记录删除时,PACK后加一句代码:
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0") ALL[/quote]
这种做法不可用。
通常可以以最大编号+1进行自动纪录,如果不允许断号重号,应该做一个消程序进行断号重号处理以便在开始输入的时候调整。
我来回复