以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现自动递增,排序? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194750) |
|||||||||||||||||||||||||||
-- 作者:lin98 -- 发布时间:2025/1/10 14:11:00 -- 如何实现自动递增,排序?
如何实现上面表A的分类ID自动填充,排序? 当“分组,分类名”录入后,分类ID按顺序,自动递增,生成,并按顺序显示
|
|||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2025/1/10 14:13:00 -- 参考:http://www.foxtable.com/webhelp/topics/2403.htm |
|||||||||||||||||||||||||||
-- 作者:y2287958 -- 发布时间:2025/1/10 14:17:00 -- 这是那跟那,三组与一二组的规则不同,咋编? |
|||||||||||||||||||||||||||
-- 作者:lin98 -- 发布时间:2025/1/10 15:08:00 -- Select e.DataCol.Name Case "分组", "分类名" If e.DataRow.IsNull("分组") OrElse e.DataRow.IsNull("分类名") Then e.DataRow("分类ID") = Nothing Else Dim d As String = e.DataRow("分组") Dim bh As String = "G" & "-" \'生成编号的前缀 If e.DataRow("分类ID").StartsWith(bh) = False Then\'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String flt = "分组 = \'" & d & "\' = \'" & e.DataRow("分类名") & "\' And [_Identify] <> " & e.DataRow("_Identify") max = e.DataTable.Compute("Max(分类ID)", flt) \'取得该月的相同工程代码的最大单据编号 If max > "" Then \'如果存在最大单据编号 idx = CInt(max.Substring(12, 4)) + 1 \'获得最大单据编号的后四位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("分类ID") = bh & Format(idx, "0000") End If End If End Select \'执行后,无法实现1楼,报错提示:无法在 System.Boolean 和 System.String 上执行“=”操作。 |
|||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2025/1/10 15:16:00 -- 下面帮助,每个先看3遍 然后学会调试 Select e.DataCol.Name Case "分组", "分类名" If e.DataRow.IsNull("分组") OrElse e.DataRow.IsNull("分类名") Then e.DataRow("分类ID") = Nothing Else Dim d As String = e.DataRow("分组") Dim bh As String = "G" & "-" \'生成编号的前缀 If e.DataRow("分类ID").StartsWith(bh) = False Then\'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String flt = "分组 = \'" & d & "\' = \'" & e.DataRow("分类名") & "\' And [_Identify] <> " & e.DataRow("_Identify") MsgBox(flt) max = e.DataTable.Compute("Max(分类ID)", flt) \'取得该月的相同工程代码的最大单据编号 If max > "" Then \'如果存在最大单据编号 MsgBox(max) idx = CInt(max.Substring(12, 4)) + 1 \'获得最大单据编号的后四位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If MsgBox(bh & Format(idx, "0000")) e.DataRow("分类ID") = bh & Format(idx, "0000") End If End If End Select |