以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]BeforSaveDataRow事件的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56906) |
-- 作者:lijin951 -- 发布时间:2014/9/15 10:23:00 -- [求助]BeforSaveDataRow事件的问题 我有两张表,分别是库存表与订单表明细表,库存表有字段 ‘库存数量’ ,‘报警阀值’ ,‘型号规格’ , ‘供应商’ 要实现目标: 在保存订单明细表的时候BeforSaveDataRow事件会校验所下订单数量, 如果订单数量<0则 e.Cancel = True 如果订单数量>=0 并 小于库存表的报警阀值则给出提示框 问题是 1.如何给 变量(报警阀值) 赋值 2.如何让所赋值的 变量(报警阀值)是订单明细表里面的 ‘型号规格’ , ‘供应商’ 字段所对应的 我之前的代码不能讨论变量只能定义所有的库存数量小于6就报警,代码如下 If e.DataRow.isnull("销售价格") OrElse e.DataRow.isnull("订单数量") Then messagebox.show("尚有订单数量或销售价格未填写,不能保存." & vblf & "如果不适用未填写值的明细请删除后保存","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.cancel=True Else If e.DataRow("库存数量") >= 0 And e.DataRow("库存数量") < 6 Then MessageBox.Show("有物料处于低库存状态,请及时补货","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Else If e.DataRow("库存数量") < 0 Then If MessageBox.Show("有明细项目库存为负任然确定出货?","询问",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) = DialogResult.No Then e.Cancel = True End If End If End If End If |
-- 作者:有点甜 -- 发布时间:2014/9/15 10:28:00 -- 直接用find函数查找,然后赋值
Dim fdr As DataRow = DataTables("库存表").Find("规格型号 = \'" & e.DataRow("规格型号") & "\' and 供应商 = \'" & e.DataRow("供应商") & "\'") If fdr IsNot Nothing Then msgbox(fdr("报警阀指")) End If
http://www.foxtable.com/help/topics/0396.htm
|