Foxtable(狐表)用户栏目专家坐堂 → 如何实现自动递增,排序?


  共有31人关注过本帖树形打印复制链接

主题:如何实现自动递增,排序?

帅哥哟,离线,有人找我吗?
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1370 积分:9115 威望:0 精华:0 注册:2020/11/4 22:15:00
如何实现自动递增,排序?  发帖心情 Post By:2025/1/10 14:11:00 [只看该作者]

分组 分类名 分类ID
一组 下单 G-01
一组 分类 G-02
一组 检查 G-03
二组 下单 G-01
二组 分类 G-02
二组 检查 G-03
三组 分类 G-01
三组 检查 G-02

如何实现上面表A的分类ID自动填充,排序?
当“分组,分类名”录入后,分类ID按顺序,自动递增,生成,并按顺序显示

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111711 积分:568691 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/10 14:13:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4794 积分:34800 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2025/1/10 14:17:00 [只看该作者]

这是那跟那,三组与一二组的规则不同,咋编?

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1370 积分:9115 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By: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 上执行“=”操作。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111711 积分:568691 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部