以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  库存调拨  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97275)

--  作者:yaojun
--  发布时间:2017/3/9 8:46:00
--  库存调拨

用foxtable做的出库管理软件公司一直在用,确实好用,公司的人都说好:可是因为个人是个程序白痴,一直不能实现库存的调拨功能,让软件使用起来有很的部方便,个人也折腾了很久,就是没有办法,今天来请教老师们,希望永久解决问题。谢谢!

我现在的各个仓库的库存是通过如下代码实现的:

表“商品中心”里的代码:
Select Case e.DataCol.name
    Case "商品编号","初始数据"
        e.DataRow("库存_仓库") = e.DataRow("库存_仓库")
        e.DataRow("库存_店铺") = e.DataRow("库存_店铺")
        e.DataRow("库存_缓冲") = e.DataRow("库存_缓冲")
        If e.DataRow.IsNull("商品编号") = False Then
           
                 e.DataRow("库存_仓库") = 0 + DataTables("入库表").Compute("sum(入库数量)", "商品编号 = \'" & e.DataRow("商品编号") & "\'and 仓库=\'仓库\'") - DataTables("销售表").Compute("sum(销售数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'仓库\'") + DataTables("退货信息").Compute("sum(退货数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'仓库\'")
                 e.DataRow("库存_店铺") = 0 + DataTables("入库表").Compute("sum(入库数量)", "商品编号 = \'" & e.DataRow("商品编号") & "\'and 仓库=\'店铺\'") - DataTables("销售表").Compute("sum(销售数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'店铺\'") + DataTables("退货信息").Compute("sum(退货数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'店铺\'")
                 e.DataRow("库存_缓冲") = 0 + DataTables("入库表").Compute("sum(入库数量)", "商品编号 = \'" & e.DataRow("商品编号") & "\'and 仓库=\'缓冲\'") - DataTables("销售表").Compute("sum(销售数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'缓冲\'") + DataTables("退货信息").Compute("sum(退货数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'and 仓库=\'缓冲\'")
                 e.DataRow("累计_总出库") = DataTables("销售表").Compute("sum(销售数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'")
                e.DataRow("累计_总入库") = DataTables("入库表").Compute("sum(入库数量)", "商品编号 = \'" &e.DataRow("商品编号") & "\'")
                 e.DataRow("库存数量") = e.DataRow("初始数据") + e.DataRow("库存_仓库") + e.DataRow("库存_店铺") + e.DataRow("库存_缓冲")
            End If
End Select

现在新增了张“库存调拨”表如下:

 


此主题相关图片如下:截图.png
按此在新窗口浏览图片

请求老师们帮忙修改下“商品中心”表里面的代码,让“库存调拨”表里面各个仓库数据发生变化后,“商品中心”表里面的各个仓库的数据也会发生变化,拜求各位老师了,希望困扰了很久很久的问题得到解决。谢谢


--  作者:有点蓝
--  发布时间:2017/3/9 9:17:00
--  
参考:http://www.foxtable.com/webhelp/scr/1453.htm

“库存调拨”表DataColChanged事件写代码,到“商品中心”查找到对应的商品,减去调出仓库的数量,加上调入仓库的数量

--  作者:yaojun
--  发布时间:2017/3/9 9:30:00
--  

看过帮助好久了,就是搞不定,老师能给段代码学习下吗


--  作者:有点色
--  发布时间:2017/3/9 9:33:00
--  

1、出入库弄好了吗?

 

http://www.foxtable.com/webhelp/scr/1454.htm

 

http://www.foxtable.com/webhelp/scr/1472.htm

 

2、调拨就是相当于,出库一次,入库一次啊。


--  作者:yaojun
--  发布时间:2017/3/9 9:50:00
--  

 

[此贴子已经被作者于2017/6/27 21:44:06编辑过]

--  作者:yaojun
--  发布时间:2017/3/9 9:51:00
--  

 

[此贴子已经被作者于2017/3/9 11:25:55编辑过]

--  作者:wyz20130512
--  发布时间:2017/3/9 10:14:00
--  
库存调拨表的DataColChanged事件:

Select Case e.DataCol.Name
    Case "调拨数量"
        Dim dr As DataRow = DataTables("商品中心").Find("商品编号 = \'" & e.DataRow("商品编号") & "\'")
        If dr IsNot Nothing Then
            DataTables("商品中心")中的数量逻辑变化的代码...
        End If
End Select

--  作者:yaojun
--  发布时间:2017/3/9 10:25:00
--  

谢谢,我不明白就是数量逻辑变化的代码,特别是有各个仓库,如果是不分仓库就觉得没有问题,但是分了仓库对于我这个程序小白来说,确实很难,呵呵


--  作者:有点色
--  发布时间:2017/3/9 10:29:00
--  

直接统计就行啊

 

            Dim sum1 As Double = DataTables("库存调拨").Compute("sum(调拨数量)", "调入仓库 = \'仓库\' and 商品编号 = \'" & e.DataRow("商品编号") & "\'")
            Dim sum2 As Double = DataTables("库存调拨").Compute("sum(调拨数量)", "调出仓库 = \'仓库\' and 商品编号 = \'" & e.DataRow("商品编号") & "\'")
            e.DataRow("库存_仓库") = sum1-sum2

 

然后你库存调拨表的DataColChanged事件重新统计一次即可

 

DataTables("商品中心").DataCols("商品编号").RaiseDataColChanged("商品编号 = \'" &e.DataRow("商品编号") & "\'")

[此贴子已经被作者于2017/3/9 13:02:30编辑过]

--  作者:yaojun
--  发布时间:2017/3/9 10:54:00
--  

色老师能帮我把代码写到项目里面去吗,我做了下,还是没有做好,总是提示这里问题哪里问题的,谢谢老师了