表A: 姓名,部门,编码
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
Else
idx = 1
End If
e.DataRow("编码") = lb & Format(idx,"000")
End If
End If
End Select
按以上代码,存在如下问题:
1.删除行后,部门内的其他人员编码还是未随之修改,这样部门内的编码不连续;
如3个人在办公室,编码为:ZH001,ZH002,ZH003, 删除ZH002后,另2个编码仍为原编码(ZH001,ZH003)。
2.行的位置调整后,该行在部门内的编码未改。
如3人编码依次分别为ZH001,ZH002,ZH003,如将ZH003移到ZH002前,编码仍为原编码
请教老师:
部门内的动态编码如何在上代码基础上修改