Foxtable(狐表)用户栏目专家坐堂 → 关于DataColChanging代码事件


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

主题:关于DataColChanging代码事件

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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
关于DataColChanging代码事件  发帖心情 Post By:2014/12/22 23:11:00 [只看该作者]

以下代码我放在DataColChanging里面,为什么起不到作用呢?

 

很简单的一个功能就是如果当前表的交货数量值发生变化(输入新值或进行了修改)导致了未交货数量<0,就提示"出货数量大于订单数量,请注意核实",如果库存数量<0,就提示出货数量大于库存数量,请修改出库数量或先完成入库操作。

 

未交货数量 = 订单数量 - 累计出货数量

库存数量来源于库存表

假设订单数量是90,累计出货数量0,库存数量50,本次交货数量95个,在新增行后输入交货数量95,应该提示 "出货数量大于订单数量,请注意核实",和出货数量大于库存数量,请修改出库数量或先完成入库操作。 但是没有任何提示,但是如果对交货数量进行修改就会出现这2个提示,这是为什么呢?

 

我的代码看了半天也没有发现错误呀!

 

请高手帮 我看下,谢谢了。

 

If e.DataCol.Name = "交货数量" Then
    If e.DataRow("未交货数量")  < 0 Then
        msgbox("出货数量大于订单数量,请注意核实")
        e.cancel=True
    End If
   
    If e.DataRow("库存数量")  < 0 Then
        msgbox("出货数量大于库存数量,请修改出库数量或先完成入库操作")
        e.cancel=True
        Return
    End If   
End If


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/22 23:20:00 [只看该作者]

DataColChanging 某一列的内容发生变化前执行

If e.DataCol.Name = "交货数量" Then  》》》此时这个值95并没有输入系统
    If e.DataRow("未交货数量")  < 0 Then 》》》此时这个未交数量还是 90-0
        msgbox("出货数量大于订单数量,请注意核实")
        e.cancel=True
    End If

你应该用下面二个来做
 NewValue:  Object类型,表示新的值
OldValue:  Object类型,表示旧的值

我也是初学者,可能班门弄斧了,见笑!
[此贴子已经被作者于2014-12-22 23:20:32编辑过]

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


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

If e.DataCol.Name = "交货数量" Then
    If e.DataRow("未交货数量") - e.NewValue  < 0 Then
        msgbox("出货数量大于订单数量,请注意核实")
        e.cancel=True

        Return
    End If
   
    If e.DataRow("库存数量") - e.NewValue  < 0 Then
        msgbox("出货数量大于库存数量,请修改出库数量或先完成入库操作")
        e.cancel=True
        Return
    End If   
End If


 回到顶部