Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
lin98 发表于: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楼
有点蓝 发表于:2025/1/10 14:13:00
参考:http://www.foxtable.com/webhelp/topics/2403.htm
3楼
y2287958 发表于:2025/1/10 14:17:00
这是那跟那,三组与一二组的规则不同,咋编?
4楼
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 上执行“=”操作。

5楼
有点蓝 发表于:2025/1/10 15:16:00
下面帮助,每个先看3遍

http://www.foxtable.com/webhelp/topics/1284.htm

http://www.foxtable.com/webhelp/topics/0240.htm

http://www.foxtable.com/webhelp/topics/0361.htm

然后学会调试

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
共5 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.