以文本方式查看主题

-  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=8784)

--  作者:blackzhu
--  发布时间:2010/12/7 19:09:00
--  [求助如何计算上月的结存数量

Select Case e.DataCol.Name
    Case "月份"
        For Each dr As DataRow In DataTables("仓库存在统计表").DataRows
            Dim dt As DataTable = DataTables("仓库入货明细")
            Dim Filter As String = "类别 = \'" & dr("类别") & "\' And "
            Filter = Filter & "品名 = \'" & dr("品名") & "\' And "
            Filter = Filter & "规格与色号 = \'" & dr("规格与色号") & "\' And "
            Filter = Filter  & "单位 = \'" & dr("单位") & "\' And "
            Filter = Filter & "单价 = " & dr("单价")
            dr("本月_入库_数量") = dt.Compute("Sum(入库数量)",Filter & "And [入库月份] =\'" & e.DataRow("月份") & "\'")
            dr("本月_出库_数量") = dt.Compute("Sum(出库数量)",Filter & "And [出库月份] =\'" & e.DataRow("月份") & "\'")

            ’这个代码是计算本月的出入库情况

            dr("上月结存_数量")=?   这个不会,举例我本月计算为5月份,我要计算4月份的结存数量,怎么写?
      Next
End Select


--  作者:czy
--  发布时间:2010/12/7 19:20:00
--  

还应该明确一点,上月结存是截止到上月止的结存?还是只是上一个月的进出结存?

如果是截止到上月止的进出结存:

dr("上月结存_数量") = dt.Compute("Sum(入库数量)",Filter & "And [入库月份] <" & e.DataRow("月份") ) - dt.Compute("Sum(出库数量)",Filter & "And [出库月份] <" & e.DataRow("月份"))

 

如果仅仅统计上月的进出结存:

 

dr("上月结存_数量") = dt.Compute("Sum(入库数量)",Filter & "And [入库月份] =" & e.DataRow("月份")-1) - dt.Compute("Sum(出库数量)",Filter & "And [出库月份] =" & e.DataRow("月份") -1)


 


--  作者:blackzhu
--  发布时间:2010/12/7 19:59:00
--  
C版,你给的代码,这个代码我试过,我转牛角尖了,本来是如果是选择上月不是截止的话举例,我选择七月的话,我本来六月的结存应该有36个,但是代码会将六月的结存减去了5月的结存,应该是25个。其实就应该是25个,因为是算的6月一个月的结存。我给搞糊涂了。气死我了,一下午。如果是截止就应该按上面的。
--  作者:i52117
--  发布时间:2010/12/8 13:16:00
--  

不知你的程序什么样,瞎说两句,以下是我在易表中的做法:

一个收入表,一个支出表,一个结存表

每月结束后,开始录入下月数据前,执行一个“月结转”命令,首先,备份当月数据到其他表,其次,把月末数据替换到月初,清空月收入和支出

 

 


--  作者:blackzhu
--  发布时间:2010/12/8 13:38:00
--  
我也不知道是怎样,帮人家弄.