以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助][讨论]跨表计算的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88940) |
-- 作者:349289451 -- 发布时间:2016/8/12 9:16:00 -- [求助][讨论]跨表计算的问题 If 条件 Then 代码1 Else 代码2 End If 条件是 Dim Mark As Integer = "出库" If Mark = "出库" Then 代码1 else 代码2 end if ![]() ![]() 想要实现的结果 表出入库登记表的数量列发生变化的时候 先判断出入库类型列 是否为“出库” 如果是 则执行 库存数减去出库数量 如果不是则执行 库存数加入库 数量
![]() ![]() |
-- 作者:2900819580 -- 发布时间:2016/8/12 9:21:00 -- dim dr as datarow = e.datarow if dr("出入库类型") = “入库” then
dim pr as datarow = datatable("物料库存表").find(”物料编码 =‘“ & dr(“物料代码”) & “‘“) pr("物料库存")=pr("物料库存") + dr("数量") end if if dr("出入库类型") = “出库” then
dim pr as datarow = datatable("物料库存表").find(”物料编码 =‘“ & dr(“物料代码”) & “‘“) pr("物料库存")=pr("物料库存") - dr("数量") end if |
-- 作者:cbt -- 发布时间:2016/8/12 9:30:00 -- \'参考 下面代码写到 出入库记录 的 DataColChanged If e.DataCol.Name = "数量" Then Dim dr As Integer = Tables("物料库存表").FindRow("[物料编号]=\'" & e.DataRow("物料代码") & "\'") If e.DataRow("出入库类型")="出库" Then Tables("物料库存表").Rows(dr)("物料库存") -= e.NewValue Else Tables("物料库存表").Rows(dr)("物料库存") += e.NewValue End If End If |
-- 作者:大红袍 -- 发布时间:2016/8/12 9:33:00 -- 你这样计算不正确。加减的运算很容易导致出错的。统计入库,统计出库,然后相减
http://www.foxtable.com/webhelp/scr/1472.htm 看第二个方法
|
-- 作者:349289451 -- 发布时间:2016/8/12 10:31:00 -- 感谢 测试过其实可以解决 但是需要有个设置 就是输入完成后那一条的记录就停止编辑了 不然随意再改动数值就会和库存对不上去了 |
-- 作者:2900819580 -- 发布时间:2016/8/12 10:57:00 -- 以下是引用349289451在2016/8/12 10:31:00的发言: 测试过其实可以解决 但是需要有个设置 就是输入完成后那一条的记录就停止编辑了 不然随意再改动数值就会和库存对不上去了 你这种做法本来就有问题,你要在库存表中,做期初库存,入库数量,出库数量,这样才不会有问题。
|