Foxtable(狐表)用户栏目专家坐堂 → 代码怎么不执行呢?


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

主题:代码怎么不执行呢?

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


加好友 发短信
等级:幼狐 帖子:155 积分:1488 威望:0 精华:0 注册:2017/1/31 17:27:00
代码怎么不执行呢?  发帖心情 Post By:2017/3/14 17:51:00 [只看该作者]

datacolchanging中,如下代码:

 

Select Case e.DataCol.Name
          Case "销售数量_片数","销售数量_破损片"
        Dim dr As DataRow = e.DataRow
        Dim kcdr As DataRow = DataTables("商品信息表").Find("产品ID = '" & e.DataRow("产品ID") & "'")
        Dim xssl As Double = dr("销售数量_片数") + dr("销售数量_破损片") 

        If xssl > kcdr("库存_片数量") Then
            e.Cancel = True
            MessageBox.show("销售数量超过库存数量!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        End If

End Select

 

怎么代码不执行呢?


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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/14 17:59:00 [只看该作者]

这2个列 "销售数量_片数","销售数量_破损片"值变化后才会触发事件

 

Select Case e.DataCol.Name
    Case "销售数量_片数","销售数量_破损片"
        Dim dr As DataRow = e.DataRow
        Dim kcdr As DataRow = DataTables("商品信息表").Find("产品ID = '" & e.DataRow("产品ID") & "'")
        Dim xssl As Double = dr("销售数量_片数") + dr("销售数量_破损片")
        If kcdr IsNot Nothing Then
        msgbox("xssl =" & xssl & ",库存_片数量=" & kcdr("库存_片数量")) '弹出看看是不是条件不符合
            If xssl > kcdr("库存_片数量") Then
                e.Cancel = True
                MessageBox.show("销售数量超过库存数量!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            End If
        End If
End Select


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


加好友 发短信
等级:幼狐 帖子:155 积分:1488 威望:0 精华:0 注册:2017/1/31 17:27:00
  发帖心情 Post By:2017/3/14 18:02:00 [只看该作者]

我在这两列输入了值,代码还是不执行啊。

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/14 18:04:00 [只看该作者]

没有符合条件的数据吧

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


加好友 发短信
等级:幼狐 帖子:155 积分:1488 威望:0 精华:0 注册:2017/1/31 17:27:00
  发帖心情 Post By:2017/3/15 7:30:00 [只看该作者]

寻找的是父表的数据啊。可以肯定不是这个原因。
[此贴子已经被作者于2017/3/15 7:33:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/15 9:16:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

看执行到那一句代码


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 9:27:00 [只看该作者]

建议你写到DataColChanged事件吧。

 

如果写到ing事件,要这样改的

 

Select Case e.DataCol.Name
    Case "销售数量_片数","销售数量_破损片"
        Dim dr As DataRow = e.DataRow
        Dim kcdr As DataRow = DataTables("商品信息表").Find("产品ID = '" & e.DataRow("产品ID") & "'")
        Dim xssl As Double
        If e.DataCol.name = "销售数量_片数" Then
            xssl = e.newvalue + dr("销售数量_破损片")
        ElseIf e.DataCol.name = "销售数量_破损片" then
            xssl = dr("销售数量_片数") + e.newvalue
        End If
        If kcdr IsNot Nothing Then
            msgbox("xssl =" & xssl & ",库存_片数量=" & kcdr("库存_片数量")) '弹出看看是不是条件不符合
            If xssl > kcdr("库存_片数量") Then
                e.Cancel = True
                MessageBox.show("销售数量超过库存数量!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            End If
        End If
End Select


 回到顶部