各位老师新年好!祝大家身体健康!万事顺意!财源广进!以下是目前现有的代码:Select e.DataCol.Name
Case "人员类别"
If e.DataRow.IsNull("人员类别")
Then
e.DataRow("人员类别")
= Nothing
Else
Dim lb As String =
e.DataRow("人员类别")
If lb = "编制人员"
Then
lb = "1"
ElseIf lb = "临聘人员"
Then
lb = "2"
ElseIf lb = "退休人员"
Then
lb = "3"
ElseIf lb = "见习人员"
Then
lb = "4"
ElseIf lb = "异出人员"
Then
lb = "5"
End If
If e.DataRow("档案编号").StartsWith(lb)
= False '如果单据编号前缀不符
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(档案编号)","档案编号
like '" & lb & "%' And [_Identify] <> " &
e.DataRow("_Identify")) '取得该类别的最大编号
If max >
"" Then '如果存在最大编号
idx =
CInt(max.Substring(lb.length)) + 1
'获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("档案编号")
= lb & Format(idx,"000")
End If
End If
End
Select但是出现以下问题后无法补自动补全,如:以“编制人员”类别为例,有档案编号1001至1120,其中档案编号"1055至1057"因“人员类别”变更,
档案编号自动变成了“2066,3023,5100”;此时档案编号“1055至1057”成为未使用空编号;在“人员类别”新增“编制人员”时,
这些空编号需要自动补全(新增一个就补全一个空编号)。如果新增3个“编制人员”后还有新增“编制人员”,那就是执行上面的代码了。
求各位老师指点!!!