-- 作者:ruanziming
-- 发布时间:2017/12/26 16:02:00
-- 不自动编号
你好,做了个自动编号列,结果是第一行有自动编号,第二行就不编了。做法是根据“票号“自动“编号“。代码如下(帮助文件复制的):
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 &
"\' And
[_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
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
|
-- 作者:有点甜
-- 发布时间:2017/12/26 16:07:00
--
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 & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(lb.length,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = lb & Format(idx,"000") End If End If End Select
|