以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 自动计算库存公式  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=67981)

--  作者:wumingrong1
--  发布时间:2015/5/7 15:29:00
--  [求助] 自动计算库存公式
我希望实现:
当【出入库登记表】发生变化时,【库存汇总表】的【库存数量】能够进行自动更新;

【库存汇总表】的【库存数量】=【出入库登记表】的【入库】总数量 - 【出库】总数量;条件是两个表的【类型】【厂家】【型号】列内容相同。

我的公式该怎么设置?在哪设置?

--  作者:Bin
--  发布时间:2015/5/7 15:30:00
--  
参考帮助 http://www.foxtable.com/help/topics/1472.htm
--  作者:狐狸爸爸
--  发布时间:2015/5/7 15:31:00
--  
也可以用表达式:
http://www.foxtable.com/help/topics/2359.htm


--  作者:wumingrong1
--  发布时间:2015/5/7 16:01:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:360截图20150507160109966.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2015/5/7 16:04:00
--  
出库列不是数值类型
--  作者:wumingrong1
--  发布时间:2015/5/7 16:36:00
--  
我采用在表DataColChanged中写以下命令;好像有点问题,能不能帮我看看错在哪里啦?


Select Case e.DataCol.Name
    Case "收支数量"

        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        Dim i1,i2 As Integer
        pr = DataTables("材料库存汇总表").Find( "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'" ) ’材料库存汇总表盒材料出入库登记表的计算条件
        Dim s As String = "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'" 

        i1 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'出库\'")
        i2 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'入库\'")
        pr("库存数量") = i2-i1  ‘ 材料库存汇总表的库存数量=材料出入库登记表的【入库-出库】
CurrentTable.DataTable.Save()
End Select




[此贴子已经被作者于2015/5/7 16:46:01编辑过]

--  作者:Bin
--  发布时间:2015/5/7 16:40:00
--  
有什么问题? 出现什么错误?
--  作者:wumingrong1
--  发布时间:2015/5/7 16:43:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:360截图20150507164233919.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2015/5/7 16:44:00
--  
pr = DataTables("材料库存汇总表").Find( "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'" )
        if pr isnot nothing then
Dim s As String = "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'" 

        i1 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'出库\'")
        i2 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'入库\'")
        pr("库存数量") = i2-i1

end if

--  作者:wumingrong1
--  发布时间:2015/5/7 16:51:00
--  
命令修改成以下内容;还是一样的错误提示。



Select Case e.DataCol.Name
    Case "收支数量"
        
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        Dim i1,i2 As Integer
        pr = DataTables("材料库存汇总表").Find( "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'" )
        If pr IsNot Nothing Then
            Dim s As String = "设备厂家=\'" & dr("设备厂家") & "\' and 设备类型=\'" & dr("设备类型") & "\' and 设备型号=\'" & dr("设备型号") & "\' and 板件名称=\'" & dr("板件名称") & "\' and 板件型号=\'" & dr("板件型号") & "\' and 交直流电=\'" & dr("交直流电") & "\'"
            
            i1 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'出库\'")
            i2 = DataTables("材料出入库登记表").Compute("Sum(收支数量)",s & " And 出入库=\'入库\'")
            pr("库存数量") = i2-i1
            
        End If
        CurrentTable.DataTable.Save()
End Select


图片点击可在新窗口打开查看此主题相关图片如下:360截图20150507164233919.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2015/5/7 16:51:04编辑过]