以文本方式查看主题

-  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

图片点击可在新窗口打开查看此主题相关图片如下:g`pke7byx0vscpt@zv0ec6.png
图片点击可在新窗口打开查看
想要实现的结果    表出入库登记表的数量列发生变化的时候 先判断出入库类型列 是否为“出库” 如果是 则执行   库存数减去出库数量   如果不是则执行 库存数加入库 数量 
图片点击可在新窗口打开查看此主题相关图片如下:uiu8y(9zwmm8)~xy{xt13.png
图片点击可在新窗口打开查看





--  作者: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的发言:
测试过其实可以解决   但是需要有个设置 就是输入完成后那一条的记录就停止编辑了  不然随意再改动数值就会和库存对不上去了


你这种做法本来就有问题,你要在库存表中,做期初库存,入库数量,出库数量,这样才不会有问题。