请教老师,我今天遇到问题是这样: 有“合同单号”,命名规则为“[领域] & [签订日期] & [3位按日流水号],如A171224001,A171224002,A171224003,我在参考说明书中“自动编号生成方法”自行设计代码如下
(DataRowAdding):
e.DataRow("签订日期") = Date.Today()
e.DataRow("业务员") = User.Name
e.DataRow("领域") = "A" '领域的默认值定义为A
Dim bh As String = e.DataRow("领域") & Format(e.DataRow("签订日期"),"yyMMdd") '取得编号的7位前缀
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(合同单号)","签订日期 =
#" & e.DataRow("签订日期") & "# And
[_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大编号
If max >
"" Then
'如果存在最大编号
idx = CInt(max.Substring(7,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号(起始号)等于1(有签订日期,无合同编号时的判断)
End If
e.DataRow("合同单号")
= bh & Format(idx,"000")
同时,我在DataCalChanged添加了代码,使修改"领域"后,"合同单号"会对应修改,如"合同单号"为A171224003行的"领域"改为"C",则合同单号改为了"C171224003",但问题来了:
每次增加一行时,自动添加生成的编号一直都是A171224004,无法按顺序编号自动生成了,怎么修改呢?
[此贴子已经被作者于2017/12/25 9:20:34编辑过]