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


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

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

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求纠正代码 为什么不能显示编号为20140901-001而是显示了00010101-001  发帖心情 Post By:2014/9/1 20:00:00 [只看该作者]


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



Case "门店名称"
        If e.DataRow.IsNull("门店名称") Then
            e.DataRow("门店单号") = Nothing
        Else
            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")) '取得该天的最大客户编码
                If max > "" Then '如果存在最大客户编码
                    idx = CInt(max.Substring(9,3)) + 1 '获得最大客户编码的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("门店单号") = mendian & bh & "-" & Format(idx,"000")
            End If
        End If

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

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


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

 你的【录入时间】没有赋值

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
  发帖心情 Post By:2014/9/1 20:05:00 [只看该作者]

录入时间自动赋值的  原来是CASE中忽视了录入时间变动后的执行 谢谢老师提醒
[此贴子已经被作者于2014-9-1 20:06:29编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
  发帖心情 Post By:2014/9/1 20:22:00 [只看该作者]

老师 继续求解:


Case "门店名称","录入时间"
        If e.DataRow.IsNull("门店名称") Then
            e.DataRow("门店单号") = Nothing
        Else
            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")) '取得该天的最大客户编码
                If max > "" Then '如果存在最大客户编码
                    idx = CInt(max.Substring(9,3)) + 1 '获得最大客户编码的后三位顺序号,并加1    在没有加入门店拼音(mendian)之前这个代码可行 加入之后由于门店简拼字母是三个级以上不等会提示错误  
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("门店单号") = mendian & bh & "-" & Format(idx,"000")
            End If
        End If


错误代码如下:
.NET Framework 版本:2.0.50727.6419
Foxtable 版本:2014.7.26.1
错误所在事件:表,门店销售单,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“1-0”到类型“Integer”的转换无效。
输入字符串的格式不正确。

[此贴子已经被作者于2014-9-1 20:22:30编辑过]

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


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

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

 

改成

 

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

 

[此贴子已经被作者于2014-9-1 20:25:25编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)idx = CInt(max.Substring(9,3)) + 1...  发帖心情 Post By:2014/9/1 20:29:00 [只看该作者]

有点甜老师 现在没有报错了 但是末尾编号永远是001

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


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

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")) '取得该天的最大客户编码


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)max = e.DataTable.Compute("Max(门店...  发帖心情 Post By:2014/9/1 20:36:00 [只看该作者]

问题依旧 有点甜老师

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


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

 代码不可能有问题,你加入msgbox弹出对应的值看一下哪里错了。

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


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

max弹出的值为空 然后又弹出一个当前编号  其他就没了
[此贴子已经被作者于2014-9-1 20:42:17编辑过]

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