Foxtable(狐表)用户栏目专家坐堂 → [求助]关于库存统计问题


  共有3054人关注过本帖树形打印复制链接

主题:[求助]关于库存统计问题

帅哥哟,离线,有人找我吗?
hovi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1416 威望:0 精华:0 注册:2013/6/1 23:24:00
[求助]关于库存统计问题  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1416 威望:0 精华:0 注册:2013/6/1 23:24:00
  发帖心情 Post By:2013/9/24 12:04:00 [只看该作者]

改了名字顶一下。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/24 12:10:00 [只看该作者]

增加一个 库号列  作为条件判断不就可以了吗

 回到顶部
帅哥哟,离线,有人找我吗?
hovi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1416 威望:0 精华:0 注册:2013/6/1 23:24:00
  发帖心情 Post By:2013/9/24 12:16:00 [只看该作者]

...要怎么去写呢?

 回到顶部
帅哥哟,离线,有人找我吗?
yan2006l
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:208 积分:1416 威望:0 精华:0 注册:2013/6/1 23:24:00
  发帖心情 Post By:2013/9/24 13:10:00 [只看该作者]

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


 回到顶部