以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]档案编号代码完善 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194944) |
||||
-- 作者:老鼠 -- 发布时间:2025/2/8 14:09:00 -- [求助]档案编号代码完善 各位老师新年好!祝大家身体健康!万事顺意!财源广进! 以下是目前现有的代码:
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 但是出现以下问题后无法补自动补全,如:以“编制人员”类别为例,有档案编号1001至1120,其中档案编号"1055至1057"因“人员类别”变更, 档案编号自动变成了“2066,3023,5100”;此时档案编号“1055至1057”成为未使用空编号;在“人员类别”新增“编制人员”时, 这些空编号需要自动补全(新增一个就补全一个空编号)。如果新增3个“编制人员”后还有新增“编制人员”,那就是执行上面的代码了。 求各位老师指点!!! |
||||
-- 作者:有点蓝 -- 发布时间:2025/2/8 14:21:00 -- 废号回收需要添加一个专门的表存储被删除的编号,可以参考一下这里的用法:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=177677&skin=0 |
||||
-- 作者:y2287958 -- 发布时间:2025/2/8 14:38:00 --
|