以文本方式查看主题

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

--  作者:zcgmxf
--  发布时间:2018/5/26 8:29:00
--  [求助] 水平汇总不同产品的数量
老师,如何在下面代码中增加最后水平汇总的代码。谢谢!

交叉统计的形式,统计每个客户订购不同产品的数量:

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("客户", Gettype(String), 16)

Dim
prds As List(of String) = DataTables("订单").GetValues("产品")
For Each
prd As String In prds
    dtb.AddDef(prd, Gettype(Double
))
Next

dtb.Build
()
For Each
cus As String In DataTables("订单").GetValues("客户")
    Dim
dr As DataRow = DataTables("统计").AddNew()
    dr("客户") = cus

    For
Each prd As String In prds
        dr(prd) = DataTables("订单").Compute("Sum(数量)","客户 = \'" & cus & "\' And [产品] = \'" & prd & "\'")

    Next
Next
MainTable= Tables(
"统计")

[此贴子已经被作者于2018/5/26 8:30:17编辑过]

--  作者:有点蓝
--  发布时间:2018/5/26 9:35:00
--  
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("客户", Gettype(String), 16)
Dim prds As List(of String) = DataTables("订单").GetValues("产品")
Dim str As String = ""
For Each prd As String In prds
    dtb.AddDef(prd, Gettype(Double))
    str = str & CExp(" + isnull({0},0)",prd)
Next
msgbox(str)
dtb.AddDef("合计", Gettype(Double), str.Trim("","+"))
dtb.Build()