以下这段代码是自动生成编号末尾的数字的,但"Max(单据编号)"我实在不明白是什么意思?让我很不解
大侠们帮帮忙,帮忙解释一下自动生成编号结尾的数字的原理是什么?那个Max函数不是只能针对整型数据使用吗?那个单据编号为字符型,为何也能用Max?
在大家的帮助下,尤其是程版主的指点下,终于完成这个自动编号的问题了;但是我没有用MAX来做,因为对MAX比较字符串还是不太明白,我是用datarow的select获得记录总数做为初始编号,如果一直用记录数总数来编号的话,在有删除行的情况下,会出现重复编号,所以再用FIND倒序排序的方法获得当前的最大编号加1进行编号;觉得这种自动编号方法与帮助里略有不同,所以为感谢谢大家的帮助,特将此实例发出与大家共同分享;如果我的代码或逻辑还有哪些不足的地方欢迎大家指出;
If e.DataRow("单据编号").StartsWith(bh) = False '如果单据编号前缀不符
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "工程代码 = '"& e.DataRow("工程代码") &
"' And 制单日期 >= #"
&
fd
&
"# And 制单日期 <= #"
&
ld
&
"#"
max = e.DataTable.Compute("Max(单据编号)",flt) '取得该月的相同工程代码的最大单据编号
If max > "" Then '如果存在最大单据编号
idx = CInt(max.Substring(12,4)) + 1
'获得最大单据编号的后四位顺序号,并加1
Else
idx = 1
'否则顺序号等于1
End If
[此贴子已经被作者于2013-2-24 16:01:24编辑过]