Select e.DataCol.Name
Case "类别"
If e.DataRow.IsNull("类别") Then
e.DataRow("编号") = Nothing
Else
Dim lb As String = e.DataRow("类别")
If e.DataRow("编号").StartsWith(lb) = False '如果单据编号前缀不符
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(编号)","类别 = '" & lb & "'") '取得该类别的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(2,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("编号") = lb & Format(idx,"000")
End If
End If
End Select
编号 和 类别 使用的 字符串类型 错误提示如下
---------------------------
版本:2012.4.12.1
---------------------------
错误代码位置:表,文件资料,DataColChanged
System.InvalidCastException: 从字符串“T00”到类型“Integer”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。
在 Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)
在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
--- 内部异常堆栈跟踪的结尾 ---
在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
在 UserCode.DataColChanged(DataColEventArgs e)
---------------------------
确定
---------------------------
我知道原因了
我的类别只能是两位数
如果我要加到3位 5位 或是其他位数 怎样写呢
如果还想和合并其他的 如 规格列 、
该如何修改代码
[此贴子已经被作者于2012-4-18 19:48:50编辑过]