Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号问题


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

主题:[求助]自动编号问题

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


加好友 发短信
等级:五尾狐 帖子:1147 积分:8953 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]自动编号问题  发帖心情 Post By:2013/3/7 11:45:00 [只看该作者]

按面试室编号

假定有下图所示的一个表,编号根据面试室生成,前两位为面试室,抽签序号不按面试室*01,而是按面试室1为a,面试室2为b,面试室3为c面试室4为d面试室5为e,....,后2位为顺序号,最后在抽签序号里自动生成如面试室1为a01,...,面试室2为:b01,....

图片点击可在新窗口打开查看此主题相关图片如下:面试室.png
图片点击可在新窗口打开查看


代码为:请修改一下

Select e.DataCol.Name
    Case "面试室"
        If e.DataRow.IsNull("面试室") Then
            e.DataRow("抽签序号") = Nothing
        Else
            Dim lb As String = e.DataRow("面试室")
            If e.DataRow("抽签序号").StartsWith(lb) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(抽签序号)","面试室 = '" & lb & "'") '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(2,2)) + 1 '获得最大编号的后2位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("抽签序号") = lb & Format(idx,"00")
            End If
        End If
End Select


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


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2013/3/7 12:45:00 [只看该作者]

我觉得你应该参照帮助里面的SQL应用实列,有个网络自动编号的例子,你应该在增加一张编号表就可以了。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/7 14:13:00 [只看该作者]

Select e.DataCol.Name
    Case "面试室"
        If e.DataRow.IsNull("面试室") Then
            e.DataRow("抽签序号") = Nothing
        Else
            Dim mss() As String = {"面试室1","面试室2","面试室3"}
            Dim dms() As String = {"a","b","c"}
            Dim lb As String
            For i As Integer = 0  To mss.Length - 1
                If mss(i) = e.NewValue Then
                    lb = dms(i)
                    Exit For
                End If
            Next
            If lb > "" AndAlso e.DataRow("抽签序号").StartsWith(lb) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(抽签序号)","面试室 = '" & e.NewValue & "'") '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    idx = CInt(max.Substring(1,2)) + 1 '获得最大编号的后2位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("抽签序号") = lb & Format(idx,"00")
            End If
        End If
End Select


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


加好友 发短信
等级:五尾狐 帖子:1147 积分:8953 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2013/3/8 9:30:00 [只看该作者]

谢谢狐爸,成功了

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


加好友 发短信
等级:小狐 帖子:393 积分:2498 威望:0 精华:0 注册:2013/4/17 6:41:00
  发帖心情 Post By:2013/6/24 6:15:00 [只看该作者]

很想学习,能否上传该成功项目?谢谢!


 回到顶部