以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186884) |
-- 作者:良才 -- 发布时间:2023/6/6 11:56:00 -- 自动编号 新增行代码
Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(编号)","[_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = Format(idx, "000") 如果把004行删除 再新增行要求编号为004 请老师指教!谢谢 [此贴子已经被作者于2023/6/6 11:56:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/6/6 12:08:00 -- 断号重用,需要添加一个断号表,把被删除的编号记录下来,在生成编号的时候,先到这个表查询获取最早的编号,如果没有再按照上面的方法生成新的编号 |
-- 作者:良才 -- 发布时间:2023/6/8 9:45:00 -- 老师帮我看看错在哪 Dim Min As String Dim max As String Dim idx As Integer Dim dr As DataRow dr = DataTables("断号表").Find("[序号] = \'" & e.DataRow("序号") & "\'") If Tables("断号表").Current IsNot Nothing And dr Is Nothing Then Min = DataTables("断号表").Compute(" Min(序号)") If Min > "" Then e.DataRow("序号") = Min End If Else max = e.DataTable.Compute("Max(序号)", "[_Identify] <> " & e.DataRow("_Identify")) If max > "" Then idx = CInt(max) + 1 Else idx = 1 End If e.DataRow("序号") = Format(idx, "000") End If
[此贴子已经被作者于2023/6/8 9:47:09编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/6/8 9:49:00 -- Dim Min As String Dim max As String Dim idx As Integer If Tables("断号表").rows.count > 0 Then Min = DataTables("断号表").Compute("Min(序号)") e.DataRow("序号") = Min DataTables("断号表").deletefor("[序号] = \'" & Min & "\'") Else max = e.DataTable.Compute("Max(序号)", "[_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("序号") = Format(idx, "000") End If
|