以文本方式查看主题

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

--  作者:铜豆
--  发布时间:2016/12/18 14:45:00
--  [求助]组合多个统计结果
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("商务通有效信息"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期")
\'根据型号分组
bd1.Groups.AddDef("搜索引擎")
bd1.Totals.AddDef("有效信息数","商务通_ 有效对话") \'对数量进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("商务通搜索引擎"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("日期")
bd2.Groups.AddDef("项目_搜索引擎")
bd2.Totals.AddDef("项目_搜索次数","商务通_ 搜索次数") \'对数量进行统计
bd2.Totals.AddDef("对话质量_合计","商务通_对话合计") \'对金额进行统计
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("百度搜索引擎"))
Dim dt3 As fxDataSource
bd3.Groups.AddDef("日期")
 \'根据型号分组
bd3.Groups.AddDef("搜索引擎")
bd3.Totals.AddDef("展现","百度_展现") \'对数量进行统计
bd3.Totals.AddDef("点击","百度_点击") \'对金额进行统计
bd3.Totals.AddDef("消费","百度_消费")
bd3.Totals.AddDef("网页转化","百度_网页转化")
bd3.Totals.AddDef("电话转化","百度_电话转化")
dt3 = bd3.BuildDataSource()

dt1.Combine("日期",dt2,"日期") \'将销售统计数据组合到进货统计数据
dt1.Combine("日期",dt3,"日期")
dt1.Combine("搜索引擎",dt2,"项目_搜索引擎") \'将退货统计数据组合到进货统计数据
dt1.Combine("搜索引擎",dt3,"搜索引擎")
Tables("表A").DataSource = dt1 \'将统计结果绑定到Table
上述代码执行错误:已经添加了相同的键

--  作者:有点色
--  发布时间:2016/12/18 15:13:00
--  

参考这种写法

 

http://www.foxtable.com/webhelp/scr/2392.htm

 


--  作者:铜豆
--  发布时间:2016/12/18 15:57:00
--  
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("百度搜索引擎"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年")
bd1.Groups.AddDef("日期","月")
bd1.Groups.AddDef("日期",DateGroupEnum.day,"日")
bd1.Groups.AddDef("搜索引擎") \'根据型号分组
bd1.Totals.AddDef("展现","百度_展现") \'对数量进行统计
bd1.Totals.AddDef("点击","百度_点击")
dt1 = bd1.BuildDataSource() 

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("商务通有效信息"))
Dim dt2  As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年")
bd2.Groups.AddDef("日期","月")
bd2.Groups.AddDef("日期",DateGroupEnum.day,"日")
bd2.Groups.AddDef("搜索引擎") \'根据型号分组
bd2.Totals.AddDef("有效信息数","商务通_有效信息数") \'对数量进行统计
dt2 = bd2.BuildDataSource()

Dim nms As String() = {"日期","搜索引擎"} \'指定连接列
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统
dt1.Show("统计表1") 

对于分(年、月、日)这样的又如何处理?
2、假如我不分年月日,直接显示日期样式为(2016/12/15),又如何处理?


--  作者:有点蓝
--  发布时间:2016/12/19 8:25:00
--  
bd1.Groups.AddDef("日期",DateGroupEnum.None)


--  作者:铜豆
--  发布时间:2016/12/19 9:52:00
--  
Dim nms As String() = {"日期","搜索引擎"} \'()
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统
老师主要就是这里有问题:1、假如按日期,那么列直接就会显示月,无法按年,月、周、周分组
                                    2、直接按日期分组又如何写
老师对于日期分组统计,测试会出错,无法执行,是不是不能对日期分组统计组合
单表分组问题不是很大,但是只要组合问题就比较大
[此贴子已经被作者于2016/12/19 12:55:28编辑过]

--  作者:有点色
--  发布时间:2016/12/19 10:33:00
--  

Dim nms As String() = {"日期","搜索引擎"}

 

改成

 

Dim nms As String() = {"年","月","日","搜索引擎"}


--  作者:铜豆
--  发布时间:2016/12/19 11:09:00
--  
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("百度搜索引擎"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年")
bd1.Groups.AddDef("搜索引擎") \'根据型号分组
bd1.Totals.AddDef("展现","百度_展现") \'对数量进行统计
bd1.Totals.AddDef("点击","百度_点击")
dt1 = bd1.BuildDataSource() 

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("商务通有效信息"))
Dim dt2  As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年")
bd2.Groups.AddDef("搜索引擎") \'根据型号分组
bd2.Totals.AddDef("有效信息数","商务通_有效信息数") \'对数量进行统计
dt2 = bd2.BuildDataSource()

Dim nms As String() = {"年","搜索引擎"} \'指定连接列
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统
dt1.Show("统计表1") 

图片点击可在新窗口打开查看此主题相关图片如下:lizhziho7(toz8~b98in.png
图片点击可在新窗口打开查看


--  作者:铜豆
--  发布时间:2016/12/19 11:09:00
--  
感到太奇特了百思不得其解,怎么弄都不行,就是日期问题最大了


Dim bd1 As New GroupTableBuilder("统计表1",DataTables("百度搜索引擎"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.None)
bd1.Groups.AddDef("搜索引擎") \'根据型号分组
bd1.Totals.AddDef("展现","百度_展现") \'对数量进行统计
bd1.Totals.AddDef("点击","百度_点击")
dt1 = bd1.BuildDataSource() 

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("商务通有效信息"))
Dim dt2  As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.None)
bd2.Groups.AddDef("搜索引擎") \'根据型号分组
bd2.Totals.AddDef("有效信息数","商务通_有效信息数") \'对数量进行统计
dt2 = bd2.BuildDataSource()

Dim nms As String() = {"日期","搜索引擎"} \'指定连接列
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统
dt1.Show("统计表1") 

这样,日期列也是不能执行的,错误信息同上传的图片
[此贴子已经被作者于2016/12/19 11:13:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/12/19 11:54:00
--  
我用foxtable自带的演示文件,测试下面的代码,完全可以:

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("订单"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年") \'根据型号分组
bd1.Totals.AddDef("数量","进货_数量") \'对数量进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("订单"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("日期",DateGroupEnum.Year,"年") \'根据型号分组
bd2.Totals.AddDef("金额","销售_金额") \'对金额进行统计
dt2 = bd2.BuildDataSource()

dt1.Combine("年",dt2,"年") \'将销售统计数据组合到进货统计数据
dt1.show("统计表1")

请上传实际例子测试。

--  作者:铜豆
--  发布时间:2016/12/19 12:30:00
--  
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("百度搜索引擎"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("日期",DateGroupEnum.Year,"年") \'
bd1.Groups.AddDef("日期",DateGroupEnum.None)\'根据型号分组
bd1.Groups.AddDef("搜索引擎")
bd1.Totals.AddDef("展现","百度_展现") \'对数量进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("商务通有效信息"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("日期",DateGroupEnum.Year,"年") \'
bd2.Groups.AddDef("日期",DateGroupEnum.None)\'根据型号分组
bd2.Groups.AddDef("搜索引擎")
bd2.Totals.AddDef("有效信息数","商务通_有效信息数") \'对金额进行统计
dt2 = bd2.BuildDataSource()

dt1.Combine("年",dt2,"年") 
dt1.Combine("日期",dt2,"日期") 
dt1.Combine("搜索引擎",dt2,"搜索引擎") 
dt1.show("统计表1")
老师你刚才说的行,变换一下就不行