SQLserver数据源。
即使是一个人录入:偶尔也会出现,自动生成的编号有重复的现象。
Dim cr As Row = Tables("发文登记表").Current
Dim y As Integer = rq.Year
Dim m As Integer = rq.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Dim bh As String = Format(rq,"yyyyMM") '生成编号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
max = DataTables("发文登记表").sqlCompute("Max(文件编号)","发文部门='"& user.group &"' and 发文登记日期>= '" & fd & "' And 发文登记日期<= '" & ld & "' And [_Identify] <> " & cr("_Identify")) '取得该月的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(13,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
cr("文件编号") =dr("部门缩写") & "-FW-" & bh & "-" & Format(idx,"000")
Tables("发文登记表").save