以文本方式查看主题

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

--  作者:hovi
--  发布时间:2013/9/24 11:39:00
--  [求助]关于库存统计问题

我想再指定某个列为“库号”,这样的话统计结果就是要求(某库内某产品的出入库统计),不同库内产品可以重复。请问这个代码怎么修改?

 

Select Case e.DataCol.Name
    Case "疫苗ID","入库(领用)","出库(使用)"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [疫苗ID] = \'" & e.DataRow("疫苗ID") & "\'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] <= " & dr("_SortKey") & " And [疫苗ID] = \'" & dr("疫苗ID") & "\'"
            Dim Val1 As Double = e.DataTable.Compute("Sum(入库(领用))",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(出库(使用))",Filter)
            dr("库存") = Val1 - Val2
        Next
        If e.DataCol.Name = "疫苗ID" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [疫苗ID] = \'" & e.OldValue & "\'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "[_SortKey] <= " & dr("_SortKey") & " And [疫苗ID] = \'" & dr("疫苗ID") & "\'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(入库(领用))",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(出库(使用))",Filter)
                dr("库存") = Val1 - Val2
            Next
        End If
End Select

[此贴子已经被作者于2013-9-24 11:55:05编辑过]

--  作者:hovi
--  发布时间:2013/9/24 12:04:00
--  
改了名字顶一下。
--  作者:Bin
--  发布时间:2013/9/24 12:10:00
--  
增加一个 库号列  作为条件判断不就可以了吗
--  作者:hovi
--  发布时间:2013/9/24 12:16:00
--  
...要怎么去写呢?
--  作者:yan2006l
--  发布时间:2013/9/24 12:27:00
--  

Select Case e.DataCol.Name
    Case "疫苗ID","入库(领用)","出库(使用)","库号"
        Dim drs As List(of DataRow)
        Dim Filter As String

 

         drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs

Filter = "[_SortKey] <= " & dr("_SortKey") & " And [疫苗ID] = \'" & dr("疫苗ID") & "\' and 库号 = " & dr("库号")

            Dim Val1 As Double = e.DataTable.Compute("Sum(入库(领用))",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(出库(使用))",Filter)
            dr("库存") = Val1 - Val2
        Next
end Select

[此贴子已经被作者于2013-9-24 12:56:37编辑过]

--  作者:hovi
--  发布时间:2013/9/24 13:10:00
--  

谢谢~看的眼花缭乱,正在结合实际修改。多谢了。