以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于DataColChanging代码事件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61951) |
-- 作者:youngling -- 发布时间:2014/12/22 23:11:00 -- 关于DataColChanging代码事件 以下代码我放在DataColChanging里面,为什么起不到作用呢?
很简单的一个功能就是如果当前表的交货数量值发生变化(输入新值或进行了修改)导致了未交货数量<0,就提示"出货数量大于订单数量,请注意核实",如果库存数量<0,就提示出货数量大于库存数量,请修改出库数量或先完成入库操作。
未交货数量 = 订单数量 - 累计出货数量 库存数量来源于库存表 假设订单数量是90,累计出货数量0,库存数量50,本次交货数量95个,在新增行后输入交货数量95,应该提示 "出货数量大于订单数量,请注意核实",和出货数量大于库存数量,请修改出库数量或先完成入库操作。 但是没有任何提示,但是如果对交货数量进行修改就会出现这2个提示,这是为什么呢?
我的代码看了半天也没有发现错误呀!
请高手帮 我看下,谢谢了。
If e.DataCol.Name = "交货数量" Then |
-- 作者:huangfanzi -- 发布时间: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编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/12/22 23:55:00 -- If e.DataCol.Name = "交货数量" Then Return |