Foxtable(狐表)用户栏目专家坐堂 → 自动编号问题不能按顺序增加


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

主题:自动编号问题不能按顺序增加

美女呀,离线,留言给我吧!
qinlao666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
自动编号问题不能按顺序增加  发帖心情 Post By:2015/3/21 13:07:00 [只看该作者]

老师请帮我看下代码,为什么不能自己增加顺序好,都是001

 

 

Select e.DataCol.Name
    Case "拜访_类型","拜访_人员"
        If e.DataRow.IsNull("拜访_类型") OrElse e.DataRow.IsNull("拜访_人员") Then
            e.DataRow("编号") = Nothing
        Else
            Dim bfry As String = e.DataRow("拜访_人员")
            If e.DataRow("拜访_人员") = "汪晓光" Then
                bfry = "W"
            ElseIf e.DataRow("拜访_人员") = "张志斌" Then
                bfry = "B"
            ElseIf e.DataRow("拜访_人员") = "巩中桂" Then
                bfry = "G"
            ElseIf e.DataRow("拜访_人员") = "汪振学" Then
                bfry = "X"
            ElseIf e.DataRow("拜访_人员") = "周荣凯" Then
                bfry = "Z"
            ElseIf e.DataRow("拜访_人员") = "张良斌" Then
                bfry = "L"
            ElseIf e.DataRow("拜访_人员") = "吴小龙" Then
                bfry = "I"
            ElseIf e.DataRow("拜访_人员") = "刘杰" Then
                bfry = "J"
            Else
                bfry = "P"
            End If
           
            Dim bflx As String = e.DataRow("拜访_类型")
            If e.DataRow("拜访_类型") = "电话" Then
                bflx = "D"
            Else
                bflx = "Z"
            End If
           
            Dim bf As String = "BF"
            Dim d As Date = e.DataRow("拜访_日期")
            Dim y As Integer = d.Year
            Dim m As Integer = d.Month
            Dim Days As Integer = Date.DaysInMonth(y,m)
            Dim fd As Date = New Date(y,m,1) '获得该月的第一天
            Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
            Dim bh As String = bf & Format(d,"yyMM") '生成编号的前6位,4位年,2位月.
            If e.DataRow("编号").StartsWith(bh) = False '如果编号的前6位不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(编号)","拜访_日期 >= #" & fd & "# And 拜访_日期 <= #" & ld & "# And [序号] <> " & e.DataRow("序号")) '取得该月的最大编号
                If len(max) = 14 Then   '如果存在最大编号
                    idx = CInt(max.Substring(11,3)) + 1 '获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("编号") = bh & bflx & bfry & "-" & Format(idx,"000")
            End If
        End If
End Select


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/21 13:34:00 [只看该作者]

调试一下.看看得出的 Max是什么 

messagebox.show(max)

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/21 13:47:00 [只看该作者]

结果不一样啊


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150321134906.jpg
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/21 13:55:00 [只看该作者]

每次的调试结果都是一样的


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/21 14:03:00 [只看该作者]

If len(max) = 14 Then

你截图的是长度12  当然永远进入Else

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/21 22:23:00 [只看该作者]

老师帮我看下,我把长度改成12后,又遇到的新问题

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/21 22:24:00 [只看该作者]

到003后又不增加了


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150321220748.jpg
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/21 23:30:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/22 9:33:00 [只看该作者]

Select e.DataCol.Name
    Case "拜访_类型","拜访_人员"
        If e.DataRow.IsNull("拜访_类型") OrElse e.DataRow.IsNull("拜访_人员") Then
            e.DataRow("编号") = Nothing
        Else
            Dim bfry As String = e.DataRow("拜访_人员")
            If e.DataRow("拜访_人员") = "汪晓光" Then
                bfry = "W"
            ElseIf e.DataRow("拜访_人员") = "张志斌" Then
                bfry = "B"
            ElseIf e.DataRow("拜访_人员") = "巩中桂" Then
                bfry = "G"
            ElseIf e.DataRow("拜访_人员") = "汪振学" Then
                bfry = "X"
            ElseIf e.DataRow("拜访_人员") = "周荣凯" Then
                bfry = "Z"
            ElseIf e.DataRow("拜访_人员") = "张良斌" Then
                bfry = "L"
            ElseIf e.DataRow("拜访_人员") = "吴小龙" Then
                bfry = "I"
            ElseIf e.DataRow("拜访_人员") = "刘杰" Then
                bfry = "J"
            Else
                bfry = "P"
            End If
           
            Dim bflx As String = e.DataRow("拜访_类型")
            If e.DataRow("拜访_类型") = "电话" Then
                bflx = "D"
            Else
                bflx = "Z"
            End If
           
            Dim bf As String = "BF"
            Dim d As Date = e.DataRow("拜访_日期")
            Dim bh As String = bf & Format(d,"yyMM") & bflx & bfry & "-"
           
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(编号)","编号 like '" & bh & "%'")
            If len(max) = 14 Then   '如果存在最大编号
                idx = CInt(max.Substring(bh.Length)) + 1 '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("编号") = bh & Format(idx,"000")
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:3794 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/3/22 12:57:00 [只看该作者]

谢谢甜老师,问题解决了。我想请问下max = e.DataTable.Compute("Max(编号)","编号 like '" & bh & "%'")
这代码是什么意思?主要是这个%我不知道干什么用的

 回到顶部
总数 11 1 2 下一页