If e.DataCol.Name = "内转日期" Then
If e.DataRow.IsNull("内转日期") Then
e.DataRow("内转单号") = Nothing
Else
Dim d As Date = e.DataRow("内转日期")
Dim bh As String = Format(d,"yyyy") '生成编号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
If e.DataRow("内转单号").StartsWith(bh) = False '如果编号的前6位不符
max = e.DataTable.Compute("Max(内转单号)","内转单号 like '" & bh & "%'") '取得该月的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(bh.length)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("内转单号") = bh & Format(idx,"000内")
End If
End If
End If
上面这串代码在“内转日期”列输入2017-01-01后,在"内转单号"列可自动生成内转单号:2017001内,不知道为什么今天继续录入的时候突然不行了,
显示:
运行错误
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.3.18.1
错误所在事件:表,内转,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“001内”到类型“Integer”的转换无效。
输入字符串的格式不正确。
各位老师麻烦了!