以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]组合多个统计结果的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174391)

--  作者:winwtj
--  发布时间:2022/1/13 12:30:00
--  [求助]组合多个统计结果的问题
C r o ssTableBuild e r统计出来的表和GroupTableBui lde r 统计出来的表可以组合吗?
[此贴子已经被作者于2022/1/13 12:49:54编辑过]

--  作者:有点蓝
--  发布时间:2022/1/13 13:32:00
--  
可以:http://www.foxtable.com/webhelp/topics/2305.htm
--  作者:winwtj
--  发布时间:2022/1/13 13:38:00
--  
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "Se lect  {main_proj}.年度,单位编号,单位名称,{main_proj}.部门编号,部门名称,{main_proj}.项目编号,项目名称,[项目类型_类编号],[项目类型_类名称],[项目类型_款编号],[项目类型_款名称],[项目类型_项编号],[项目类型_项名称],[功能分类_类编号],[功能分类_类名称],[功能分类_款编号],[功能分类_款名称],[功能分类_项编号],[功能分类_项名称],明细项目编号,明细项目名称,[经济分类_类编号],[经济分类_类名称],[经济分类_款编号],[经济分类_款名称],政府采购,政府购买服务,财政拨款,上级拨款,其他收入,上年结余,预算类型 From {de_proj} Inner JOIN {main_proj} ON {main_proj}.[项目编号] = {de_proj}.[项目编号]"
dt = cmd.ExecuteReader()
Dim g1 As New CrossTableBuilder("统计表1", dt)
g1.HGroups.AddDef("年度")
g1.HGroups.AddDef("单位编号")
g1.HGroups.AddDef("单位名称")
g1.HGroups.AddDef("部门编号")
g1.HGroups.AddDef("部门名称")
g1.HGroups.AddDef("项目编号")
g1.HGroups.AddDef("项目名称")
g1.HGroups.AddDef("项目类型_类编号")
g1.HGroups.AddDef("项目类型_类名称")
g1.HGroups.AddDef("项目类型_款编号")
g1.HGroups.AddDef("项目类型_款名称")
g1.HGroups.AddDef("项目类型_项编号")
g1.HGroups.AddDef("项目类型_项名称")
g1.HGroups.AddDef("功能分类_类编号")
g1.HGroups.AddDef("项目类型_类名称")
g1.HGroups.AddDef("功能分类_款编号")
g1.HGroups.AddDef("功能分类_款名称")
g1.HGroups.AddDef("功能分类_项编号")
g1.HGroups.AddDef("功能分类_项名称")
g1.HGroups.AddDef("明细项目编号")
g1.HGroups.AddDef("明细项目名称")
g1.HGroups.AddDef("经济分类_类编号")
g1.HGroups.AddDef("经济分类_类名称")
g1.HGroups.AddDef("经济分类_款编号")
g1.HGroups.AddDef("经济分类_款名称")
g1.HGroups.AddDef("政府采购")
g1.HGroups.AddDef("政府购买服务")
g1.VGroups.AddDef("预算类型")
g1.Totals.AddDef("财政拨款", "财政拨款")
g1.Totals.AddDef("上级拨款", "上级拨款")
g1.Totals.AddDef("其他收入", "其他收入")
g1.Totals.AddDef("上年结余", "上年结余")
g1.HorizontalTotal = True
g1.Build()

Dim g2 As New GroupTableBuilder("统计表2", DataTables("zcmx"))
g2.Groups.AddDef("明细项目编号")
g2.Totals.AddDef("财政拨款","财政拨款支出")
g2.Totals.AddDef("上级拨款","上级拨款支出")
g2.Totals.AddDef("其他收入","其他收入支出")
g2.Totals.AddDef("上年结余","上年结余支出")
g2.Build()


Dim dt1 As fxDataSource=g1.BuildDataSource()
Dim dt2 As fxDataSource= g2.BuildDataSource()
dt1.Combine("明细项目编号",dt2," 明细项目编号")
dt1.Show("统计表1")

[此贴子已经被作者于2022/1/13 16:21:32编辑过]

--  作者:winwtj
--  发布时间:2022/1/13 13:40:00
--  
以上代码,报错
图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/1/13 13:46:00
--  
打开表结构看看"统计表1"真正的列名是什么

另外去掉g1.Build()和g2.Build()

--  作者:winwtj
--  发布时间:2022/1/13 13:46:00
--  
发现一个问题,按照上面代码,形成的“统计表1”中的列类型原本“文本”的变成了“备注型”
[此贴子已经被作者于2022/1/13 16:25:14编辑过]

--  作者:有点蓝
--  发布时间:2022/1/13 13:47:00
--  
“文本”的变成了“备注型”这个对结果没有任何影响
--  作者:winwtj
--  发布时间:2022/1/13 13:49:00
--  
统计表1"明细项目编号"类型是备注型,统计表2"明细项目编号"类型是文本,是不是就没法组合了
--  作者:有点蓝
--  发布时间:2022/1/13 13:58:00
--  
没有任何影响
--  作者:winwtj
--  发布时间:2022/1/13 16:14:00
--  
确认了,真实列名为明细项目编号,去掉g1.Build()和g2.Build()还是报错
[此贴子已经被作者于2022/1/13 16:25:33编辑过]