以文本方式查看主题

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

--  作者:L88919138
--  发布时间:2012/7/3 6:15:00
--  [求助]跨表统计并自动填列
 

如何跨表统计订单表中出仓日期和出仓数量为空的数据行,并按商品名称、规格分类以合计数形式统计填列到采购计划表中

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:实验.rar


--  作者:狐狸爸爸
--  发布时间:2012/7/3 8:14:00
--  

很简单的:

 

Dim g As New GroupTableBuilder("统计表1", DataTables("订单表"))
Dim dt As DataTable
g.Groups.AddDef("商品名称")
g.Groups.AddDef("规格")
g.Totals.AddDef("数量")
g.Filter = "[出仓数量] is Null Or [出仓数量] = 0"
dt = g.Build(True)
DataTables("采购计划表").DataRows.Clear()
For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("采购计划表").AddNew
    dr2("商品名称") = dr1("商品名称")
    dr2("规格") = dr1("规格")
    dr2("计划采购数量") = dr1("数量")
Next

 

相关知识点:

http://www.foxtable.com/help/topics/1533.htm

http://www.foxtable.com/help/topics/1910.htm

 


--  作者:L88919138
--  发布时间:2012/7/3 11:03:00
--  

多谢指点,只是发现当订单表里数据量很大时,统计速度明显慢了很多,要等上一段时间,有无改进办法?

 


--  作者:狐狸爸爸
--  发布时间:2012/7/3 11:10:00
--  

统计很快,是填充慢,可以这样试试:

 

Dim g As New GroupTableBuilder("统计表1", DataTables("订单表"))
Dim dt As DataTable
g.Groups.AddDef("商品名称")
g.Groups.AddDef("规格")
g.Totals.AddDef("数量")
g.Filter = "[出仓数量] is Null Or [出仓数量] = 0"
dt = g.Build(True)
DataTables("采购计划表").StopRedraw
DataTables("采购计划表").DataRows.Clear()
For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("采购计划表").AddNew
    dr2("商品名称") = dr1("商品名称")
    dr2("规格") = dr1("规格")
    dr2("计划采购数量") = dr1("数量")
Next
DataTables("采购计划表").ResumeDraw


--  作者:L88919138
--  发布时间:2012/7/3 11:45:00
--  

狐爸,最后一句程序应为DataTables("采购计划表").ResumereDraw。速度是有所提高,但与我理想速度可能有些差距,不过还是多谢您的指点。