以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于自动编号问题的求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80539)

--  作者:lyzhuo
--  发布时间:2016/1/25 20:20:00
--  关于自动编号问题的求助

有一个“总序号”列,从001开始编号,用以下的代码一直能够正常编号,

但是后来由于特殊原因,在表内插入了“J01、J02……到J18”几个编号后,不能自动编号了,想要继续按001、002、003……这样的顺序进行编号,请教代码需要怎么改?

先谢谢了!

 

原来代码:

Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(总序号)","") \'取得最大编号
idx = CInt(max) + 1
e.DataRow("总序号") = Format(idx,"000")


--  作者:大红袍
--  发布时间:2016/1/25 23:49:00
--  
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(总序号)","总序号 not like \'J*\'") \'取得最大编号
idx = val(max) + 1
e.DataRow("总序号") = Format(idx,"000")

--  作者:lyzhuo
--  发布时间:2016/1/26 9:01:00
--  

谢谢红袍版主,如果想改成以任意字母开头的不计算编号的怎么改呀?谢谢


--  作者:Hyphen
--  发布时间:2016/1/26 9:11:00
--  
not like \'J*\'",这里J改成所谓的任意字母。

编号必须有规律

--  作者:lyzhuo
--  发布时间:2016/1/26 9:13:00
--  
我使用 [A-Z]* 提示出现错误
--  作者:lyzhuo
--  发布时间:2016/1/26 9:17:00
--  

max = e.DataTable.Compute("Max(总序号)","总序号 not like \'[A-Z]*\'") \'取得最大编号

 

提示出错如下:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.11.11.1
错误所在事件:表,指标文件,DataRowAdding
详细错误信息:
调用的目标发生了异常。
Like 运算符中出错: 字符串模式“[A-Z]*”无效。


--  作者:Hyphen
--  发布时间:2016/1/26 9:30:00
--  
必须指定具体某一个字母,不支持正则语法。

再强调一次,编号必须有固定的规律,不能在一串连续的编号中任意应用不同的前缀

--  作者:lyzhuo
--  发布时间:2016/1/26 9:36:00
--  

知道了,谢谢