Foxtable(狐表)用户栏目专家坐堂 → 求纠正代码 为什么不能显示编号为20140901-001而是显示了00010101-001


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

主题:求纠正代码 为什么不能显示编号为20140901-001而是显示了00010101-001

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


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

那就是没有满足要求啊。自己看看 mendian & bh & "-"  的值是什么


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜) 代码不可能有问题,你加入msgb...  发帖心情 Post By:2014/9/1 21:00:00 [只看该作者]

即便我参照教程例子 改成如下代码:效果还是末尾永远都是001

Case "录入时间","门店简拼"
        If e.DataRow.IsNull("录入时间") OrElse e.DataRow.IsNull("门店简拼") Then
            e.DataRow("门店单号") = Nothing
        Else
            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 = e.DataRow("门店简拼") & "-" & Format(d,"yyyyMM") & "-" '生成编号的前缀
            If e.DataRow("门店单号").StartsWith(bh) = False '如果门店单号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "门店简拼 = '"& e.DataRow("门店简拼") & "' And 录入时间 >= #" & fd & "# And 录入时间 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")
                max = e.DataTable.Compute("Max(门店单号)",flt) '取得该月的相同门店简拼的最大门店单号
                If max > "" Then '如果存在最大门店单号
                    'idx = CInt(max.Substring(12,4)) + 1 '获得最大门店单号的后四位顺序号,并加1
idx = CInt(max.Substring((bh).Length,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("门店单号") = bh & Format(idx,"0000")
            End If
        End If


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


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

 

[此贴子已经被作者于2014-9-1 21:05:39编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)那就是没有满足要求啊。自己看看 men...  发帖心情 Post By:2014/9/1 21:05:00 [只看该作者]

一次弹出如下:

MD00010101-

MD20140901-

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


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

 这句改一下

 

idx = CInt(max.Substring((bh).Length,3)) + 1 '获得最大客户编码的后三位顺序号,并加1

 

 改成

 

idx = CInt(max.Substring((bh).Length,4)) + 1 '获得最大客户编码的后三位顺序号,并加1


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)?这句改一下?idx = CI...  发帖心情 Post By:2014/9/1 21:20:00 [只看该作者]

改了后还是依旧

上例子 麻烦有点甜老师看看


门店销售单 这个表中
[此贴子已经被作者于2014-9-1 21:35:44编辑过]

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


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

Dim bh As String = Format(e.DataRow("录入时间"),"yyyyMMdd") '取得客户编码的8位前缀
        If e.DataRow("门店单号").StartsWith(bh) = False '如果客户编码的前8位不符
            Dim max As String
            Dim idx As Integer
            Dim mendian As String
            mendian = GetPY( e.DataRow("门店名称"), True)
            'max = e.DataTable.Compute("Max(门店单号)","录入时间 = #" & e.DataRow("录入时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大客户编码
            max = e.DataTable.Compute("Max(门店单号)","门店单号 like '" & mendian & bh & "-"  & "%' And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大客户编码
            If max > "" Then '如果存在最大客户编码
                'idx = CInt(max.Substring(9,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
                idx = CInt(max.Substring((mendian & bh & "-").Length,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("门店单号") = mendian & bh & "-" & Format(idx,"000")
        End If

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)Dim bh As String = Format(e.DataRo...  发帖心情 Post By:2014/9/1 21:35:00 [只看该作者]

感谢有点甜老师  我将代码弄成了 如下 也能够完美编号了 谢谢
Case "门店名称","录入时间"    
Dim bh As String = Format(e.DataRow("录入时间"),"yyyyMMdd") '取得客户编码的8位前缀
        If e.DataRow("门店单号").StartsWith(bh) = False '如果客户编码的前8位不符
            Dim max As String
            Dim idx As Integer
            Dim mendian As String
            mendian = GetPY( e.DataRow("门店名称"), True)
            'max = e.DataTable.Compute("Max(门店单号)","录入时间 = #" & e.DataRow("录入时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大客户编码
            max = e.DataTable.Compute("Max(门店单号)","门店单号 like '" & mendian & "-" & bh & "-"   & "%' And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大客户编码
            If max > "" Then '如果存在最大客户编码
                'idx = CInt(max.Substring(9,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
                idx = CInt(max.Substring((mendian & "-" & bh & "-").Length,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("门店单号") = mendian & "-" & bh & "-" & Format(idx,"000")
        End If


 回到顶部
总数 18 上一页 1 2