以文本方式查看主题

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

--  作者:whuan1027
--  发布时间:2014/10/17 11:11:00
--  合并统计结果

各位高手:

      我需要将两个分组统计的结果合并,并将生成的统计表填充到一个数据表中进行保存,代码如下:现在的问题是不能将统计表2的结果合并到统计表1中,请高手们帮忙看一下,谢谢!

Dim sql As String = "Select 项目名称,产品名称,产品型号,台数,零部件图号,状态,去向,填表单位 AS 制造单位 from{车间台账} where 状态 = \'未完成\'"
Dim g As New GroupTableBuilder("统计表1",sql, "database" )
Dim dt As fxDataSource
g.Groups.AddDef("项目名称")
g.Groups.AddDef("产品名称")
g.Groups.AddDef("产品型号")
g.Groups.AddDef("台数")
g.Groups.AddDef("制造单位")
g.Totals.AddDef("零部件图号", AggregateEnum.Count, "任务量")
g.FromServer = True
g.Filter = "[状态] = \'未完成\'"
dt = g.BuildDataSource()
Dim g1 As New GroupTableBuilder("统计表2",sql, "database" )
Dim dt1 As fxDataSource
g1.Groups.AddDef("项目名称")
g1.Groups.AddDef("产品名称")
g1.Groups.AddDef("产品型号")
g1.Groups.AddDef("台数")
g1.Groups.AddDef("制造单位")
g1.Totals.AddDef("零部件图号", AggregateEnum.Count, "已完成")
g1.FromServer = True
g1.Filter = "[状态] = \'未完成\'and [去向] is null"
dt1 = g1.BuildDataSource()
Dim nms() As String = {"项目名称","产品名称","产品型号","台数","制造单位"}
dt.Combine(nms,dt1,nms)
Dim f As New Filler
f.SourceTable = DataTables("统计表1") \'指定数据来源
f.SourceCols = "项目名称,产品名称,产品型号,台数,制造单位,任务量"  \'指定数据来源列
f.DataTable = DataTables("进度统计") \'指定数据接收表
f.DataCols = "项目名称,产品名称,产品型号,产品台数,制造单位,任务量" \'指定数据接收列
f.Fill() \'填充数据
DataTables("进度统计").save()


--  作者:有点甜
--  发布时间:2014/10/17 11:13:00
--  
 提示错误,还是怎样?
--  作者:whuan1027
--  发布时间:2014/10/17 11:15:00
--  

没有提示错误,就是最后的统计结果中没有统计表2的数据


--  作者:有点甜
--  发布时间:2014/10/17 11:19:00
--  

 是合并到统计表1啊。

 

 改一下 dt1.Combine(nms,dt,nms)


--  作者:whuan1027
--  发布时间:2014/10/17 11:24:00
--  

现在测试又报错了,说找不到“统计表1”

应该是这句   f.SourceTable = DataTables("统计表1") \'指定数据来源   有问题


--  作者:有点甜
--  发布时间:2014/10/17 11:29:00
--  

dt1.Combine(nms,dt,nms)

dt1.Show("统计表2")
Dim f As New Filler
f.SourceTable = DataTables("统计表2") \'指定数据来源
f.SourceCols = "项目名称,产品名称,产品型号,台数,制造单位,任务量"  \'指定数据来源列
f.DataTable = DataTables("进度统计") \'指定数据接收表
f.DataCols = "项目名称,产品名称,产品型号,产品台数,制造单位,任务量" \'指定数据接收列
f.Fill() \'填充数据
DataTables("进度统计").save()


--  作者:whuan1027
--  发布时间:2014/10/17 11:33:00
--  
谢谢!
--  作者:yan2006l
--  发布时间:2014/10/17 11:34:00
--  

我觉得无论统计1还是统计2应该都不存在了,都变成DT了

所以应该要把DT重新绑到窗口表中去,重新生成一个表来做数据源