回 帖 发 新 帖 刷新版面

主题:自动编号

请问下从1开始的自动编号代码怎么写?
即 1,2,3,4,5,6。。。。。。

回复列表 (共6个回复)

沙发

a=1


do while a<1000
 a=a+1
 ?a
enddo

板凳

如果是表里的一字段为自动编号,可以让其等于recn()

3 楼

编号=recn()不是不可以,但是除非你的纪录是加入后永远不会再删除,就可以使用。


否则,你想,原来是10个纪录,编号1-10,我把5#纪录删除了,剩下的编号仍然是1-10(少了5),这时候再插入一个新纪录,按编号=recn()规则,他的编号=10,不就重复了吗。

4 楼

如果是表里的一字段为自动编号,且为字符型,可以让其等于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 楼

如果是自由表设字段编号字段也可=RECN()
当有记录删除时,PACK后加一句代码:
REPLACE 自动编号字段 WITH PADL(ALLTRIM(STR(RECNO(),4,0)),4,"0") ALL




编号都不固定,那要这个“自动编号”字段还有意义吗?

6 楼

[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进行自动纪录,如果不允许断号重号,应该做一个消程序进行断号重号处理以便在开始输入的时候调整。

我来回复

您尚未登录,请登录后再回复。点此登录或注册