设计了公文表,按登录用户的单位进行了数据筛选,只能查看本单位数据。在公文新增中用以下代码实现了按收件时间的自动编号。现在各下属单位每一天都是从001开始,单独看没问题。但管理员这里将所有单位数据都显示后就发现了重复的001等编号,请问如何修改代码使各下属单位自动编号时按数据表里所有数据进行自动编号?这是自动编号的代码:
If e.DataCol.Name = "收件时间" Then
If e.DataRow.IsNull("收件时间") Then
e.DataRow("编号") = Nothing
Else
Dim bh As String = Format(e.DataRow("收件时间"),"yyyyMMdd") '取得编号的8位前缀
If e.DataRow("编号").StartsWith(bh) = False '如果编号的前8位不符
Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(编号)","收件时间 = #" & e.DataRow("收件时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(9,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("编号") = bh & "-" & Format(idx,"000")
End If
End If
End If
这是刷新代码进行数据桉单位显示:
If _UserGroup = "基层管理" Then
Dim dr As DataRow = DataTables("用户信息表").find("用户名 = '" & _UserName & "'")
If dr IsNot Nothing Then
DataTables("公文督办表").LoadFilter = "承办单位 = '" & dr("二级单位") & "'"
DataTables("公文督办表").Load
End If
Else
DataTables("公文督办表").LoadFilter = ""
DataTables("公文督办表").Load
End If
这是两个单位自动编号后重复的001
[此贴子已经被作者于2021/1/15 18:08:44编辑过]