以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  库存表数据求代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85562)

--  作者:longyanlin
--  发布时间:2016/5/28 15:33:00
--  库存表数据求代码

看了好多天的帮助,特别是刚开始的几天几乎是24H,很上瘾,上次第一次问问也都搞不好,今天又来求代码了,哪位老师或者是大神给我写段代码,解决库存问题,我非常感谢他,永远记得他,哈哈哈!

1,库存表里的1号,2号,3号的各个库存数据=入库数量-出库数量-退货数量(各个仓库)

2,总库存数量=调账数量+1号+2号+3号(各仓库的库存数量)

3,上月结存,上月总入库,上月总出库 三列的数据

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

十分十分感谢帮助写代码的人或老师,我很感激,很需要这种内容,与我现在的工作非常相符,我会努力的。
--  作者:Hyphen
--  发布时间:2016/5/28 15:59:00
--  
新手先看看视频教程http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67187


--  作者:longyanlin
--  发布时间:2016/5/28 16:11:00
--  

可是我已经看了很多天了,就是不知道如何下手啊,能帮忙写写吗,慢慢研究,谢谢了


--  作者:Hyphen
--  发布时间:2016/5/28 16:36:00
--  
以1号仓库为例,其它类似,看懂代码

With Tables("库存表")
    Dim 入库数量 = Tables("入库表").Compute("sum(入库数量)","产品编号=\'" & .Current("产品编号") & "\' and 仓库=\'1号库\'")
    Dim 出库数量 = Tables("出库表").Compute("sum(出库数量)","产品编号=\'" & .Current("产品编号") & "\' and 仓库=\'1号库\'")
    Dim 退货数量 = Tables("退货表").Compute("sum(退货数量)","产品编号=\'" & .Current("产品编号") & "\' and 仓库=\'1号库\'")
    
    .Current("仓库_1号库库存数量") = 入库数量 - 出库数量 + 退货数量
End With

--  作者:longyanlin
--  发布时间:2016/5/28 16:38:00
--  

谢谢,研究下,不懂再来提问

十分十分感谢,有了个好开头


--  作者:longyanlin
--  发布时间:2016/5/28 17:47:00
--  

结合老师的意见,自己改了下,变成了下面的代码,但是上月结存,上月总出库,上月总入库数据不知道怎么来,请求代码修改,谢谢

Select Case e.DataCol.name
    Case "产品编号","调账数量"
        e.DataRow("仓库_1号库库存数量") = e.DataRow("仓库_1号库库存数量")
        e.DataRow("仓库_2号库库存数量") = e.DataRow("仓库_1号库库存数量")
        e.DataRow("仓库_3号库库存数量") = e.DataRow("仓库_1号库库存数量")
        If e.DataRow.IsNull("产品编号") = False Then
           
                 e.DataRow("仓库_1号库库存数量") = 0 + DataTables("入库表").Compute("sum(入库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\'and 仓库=\'1号库\'") - DataTables("出库表").Compute("sum(出库数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'1号库\'") - DataTables("退货表").Compute("sum(退货数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'1号库\'")
                 e.DataRow("仓库_2号库库存数量") = 0 + DataTables("入库表").Compute("sum(入库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\'and 仓库=\'2号库\'") - DataTables("出库表").Compute("sum(出库数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'2号库\'") - DataTables("退货表").Compute("sum(退货数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'2号库\'")
                  e.DataRow("仓库_3号库库存数量") = 0 + DataTables("入库表").Compute("sum(入库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\'and 仓库=\'3号库\'") - DataTables("出库表").Compute("sum(出库数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'3号库\'") - DataTables("退货表").Compute("sum(退货数量)", "产品编号 = \'" &e.DataRow("产品编号") & "\'and 仓库=\'3号库\'")
      e.DataRow("库存数量") = e.DataRow("调账数量") + e.DataRow("仓库_1号库库存数量") + e.DataRow("仓库_2号库库存数量") + e.DataRow("仓库_3号库库存数量")
            End If
End Select

[此贴子已经被作者于2016/5/28 20:21:10编辑过]

--  作者:大红袍
--  发布时间:2016/5/29 23:55:00
--  

参考代码

 

Select Case e.DataCol.name
    Case "产品编号","调账数量"
        Dim d As Date = Date.Today
        d = d.AddDays(-1)
        d = new Date(d.Year, d.Month, 1)
        Dim sum1 As Double = DataTables("入库表").Compute("sum(入库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\' and 入库日期 >= #" & d & "# and 入库日期 < #" & d.AddMonths(1) & "#")
        Dim sum2 As Double = DataTables("出库表").Compute("sum(出库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\' and 出库日期 >= #" & d & "# and 出库日期 < #" & d.AddMonths(1) & "#")
        e.DataRow("上月总出库") = sum2
        e.DataRow("上月总入库") = sum1
End Select


--  作者:longyanlin
--  发布时间:2016/5/30 16:25:00
--  

老师的代码我修改了下,能达到效果,不过统计日期是今天-1天的,不是上月1-30号的,我列改到查询表里面去了,上月结存也到每个月的最后一天把库存数量手工复制到该列,达到了,不管怎么样都非常感谢老师,让我这个刚看了10几天的人对狐表有些认识了。

现在有如下代码:总出库=两个子表的数量累加(表达式列),但是第一个表数据有了,总出库不会变化,要第二个表的数据也发生改变,总出库才改变,请问怎么写表达式的函数,谢谢!

Sum(Child(库存表领料明细).出库数量) + Sum(Child(库存表销售明细).销售数量)


--  作者:njcyt
--  发布时间:2016/5/30 16:37:00
--  
参考http://www.foxtable.com/help/index.html?n=1451.htm
--  作者:大红袍
--  发布时间:2016/5/30 16:55:00
--  

改一下

 

Select Case e.DataCol.name
    Case "产品编号","调账数量"
        Dim d As Date = Date.Today
        d = d.AddMonths(-1)
        d = new Date(d.Year, d.Month, 1)
        Dim sum1 As Double = DataTables("入库表").Compute("sum(入库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\' and 入库日期 >= #" & d & "# and 入库日期 < #" & d.AddMonths(1) & "#")
        Dim sum2 As Double = DataTables("出库表").Compute("sum(出库数量)", "产品编号 = \'" & e.DataRow("产品编号") & "\' and 出库日期 >= #" & d & "# and 出库日期 < #" & d.AddMonths(1) & "#")
        e.DataRow("上月总出库") = sum2
        e.DataRow("上月总入库") = sum1
End Select