以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 特殊编号--已解决 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58866) |
-- 作者:qhczy -- 发布时间:2014/10/25 11:53:00 -- 特殊编号--已解决 [此贴子已经被作者于2014-10-25 13:05:14编辑过]
|
-- 作者:qhczy -- 发布时间:2014/10/25 12:18:00 -- 问题已解决. Select e.DataCol.Name Case "第二列","第三列","第四列" If e.DataRow.IsNull("第二列") OrElse e.DataRow.IsNull("第三列") OrElse e.DataRow.IsNull("第四列") Then e.DataRow("第五列") =Nothing Else Dim lb As String = e.DataRow("第二列") & "-" & e.DataRow("第三列") & "-" & e.DataRow("第四列") \'生成编号的前缀 Dim max As String Dim idx As Integer Dim d As String =e.DataRow("第二列") Dim t As String =e.DataRow("第三列") Dim s As String =e.DataRow("第四列") \' max = e.DataTable.Compute("Max(第五列)","第二列 = \'" & d &"\' And 第三列 =\'" & t &"\' And 第四列 =\'" & s &"\' And [_Identify] <> " & e.DataRow("_Identify")) \' [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 \'idx = CInt(max) + 1 idx = CInt(max.Substring(lb.Length+1,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("第五列") = lb & "-" & Format(idx,"000") e.DataRow("第六列") = idx End If End Select |