以文本方式查看主题

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

--  作者:lgz518
--  发布时间:2020/1/16 16:35:00
--  如何实现跨表多表统计?
项目:库存表,用跨表统计库存量,字段,产品编号,产品名称,单位,入库数量,出库数量,库存数,期未数
1,用下面代码,只实现一个,没实现,入库数量,出库数量。计算出来库存数,期未数是库存数?
If MainTable.Name = "库存表" Then
    DataTables("库存表").DataRows.Clear()
    For Each nm As  String  In DataTables("入库明细").GetValues("产品名称")
        Dim dr As DataRow = DataTables("库存表").addnew( )
        Dim nm As String = dr("产品编号") & "|" & dr("产品名称")
        dr("产品名称") = nm
        dr("入库_数量") = DataTables("入库明细").Compute("Sum(数量)","产品名称 = \'" & nm & "\'")
        dr("入库_金额") = DataTables("入库明细").Compute("Sum(金额)","产品名称 = \'" & nm & "\'")
    Next
    
End If


If MainTable.Name = "库存表" Then
    DataTables("库存表").DataRows.Clear()
    For Each nk As  String  In DataTables("出库明细").GetValues("产品名称")
        Dim dr As DataRow = DataTables("库存表").addnew( )
        Dim nm As String = dr("产品编号") & "|" & dr("产品名称")
        dr("产品名称") = nk
        dr("出库_数量") = DataTables("出库明细").Compute("Sum(数量)","产品名称 = \'" & nk & "\'")
        dr("出库_金额") = DataTables("出库明细").Compute("Sum(金额)","产品名称 = \'" & nk & "\'")
    Next
    
End If

--  作者:有点蓝
--  发布时间:2020/1/16 16:42:00
--  
If MainTable.Name = "库存表" Then
    DataTables("库存表").DataRows.Clear()
    For Each nm As  String  In DataTables("入库明细").GetValues("产品名称")
        Dim dr As DataRow = DataTables("库存表").addnew( )
        Dim nm As String = dr("产品编号") & "|" & dr("产品名称")
        dr("产品名称") = nm
        dr("入库_数量") = DataTables("入库明细").Compute("Sum(数量)","产品名称 = \'" & nm & "\'")
        dr("入库_金额") = DataTables("入库明细").Compute("Sum(金额)","产品名称 = \'" & nm & "\'")
    Next
        For Each nk As  String  In DataTables("出库明细").GetValues("产品名称")
        Dim dr As DataRow = DataTables("库存表").find("产品名=\'" & nk & "\'")
if dr is nothing then
        dr = DataTables("库存表").addnew( )
        dr("产品名称") = nk
end if
        dr("出库_数量") = DataTables("出库明细").Compute("Sum(数量)","产品名称 = \'" & nk & "\'")
        dr("出库_金额") = DataTables("出库明细").Compute("Sum(金额)","产品名称 = \'" & nk & "\'")
    Next
End If


--  作者:lgz518
--  发布时间:2020/1/17 23:30:00
--  
1. Dim nm As String = dr("产品编号") & "|" & dr("产品名称"),这个报错?
2.如何实现其他字段,如“产品编号,规格型号,单位”?
图片点击可在新窗口打开查看此主题相关图片如下:库存1.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/1/18 8:56:00
--  
For Each nm As  String  In DataTables("入库明细").GetValues("产品名称")
        Dim dr As DataRow = DataTables("库存表").addnew( )
dim dr2 as datarow = DataTables("入库明细").find("产品名称=\'" & nm &"\'")
        dr("产品名称") = nm
        dr("产品编号") = dr2("产品编号") 
        dr("入库_数量") = DataTables("入库明细").Compute("Sum(数量)","产品名称 = \'" & nm & "\'")
        dr("入库_金额") = DataTables("入库明细").Compute("Sum(金额)","产品名称 = \'" & nm & "\'")
    Next