以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]交叉统计问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184355) |
-- 作者:cherryjing -- 发布时间:2022/12/4 21:54:00 -- [求助]交叉统计问题 原本用CrossTableBuilder代码如下: Dim g As New CrossTableBuilder("交叉统计表1", DataTables("设备材料表")) If rdoUnit1.Checked Then g.HGroups.AddDef("主项编号") g.VGroups.AddDef("专业", "{0}_金额") Else g.HGroups.AddDef("专业") g.VGroups.AddDef("主项编号", "{0}_金额") End If g.Totals.AddDef("金额", "金额") g.HorizontalTotal = True g.VerticalTotal = True g.HorizontalProportion = True g.Build() Tables("Form_Stastistics_tbl_Stastistics").DataSource = g.BuildDataSource() 运行正常,但我为了将主项编号变为主项名称,修改代码如下: Dim b As New SQLCrossTableBuilder("交叉统计表1", "设备材料表") \'b.C b.AddTable("设备材料表", "主项编号", "主项表", "主项编号") \'添加统计表 If rdoUnit1.Checked Then b.HGroups.AddDef("主项名称") \'添加主项名称列用于水平分组 b.VGroups.AddDef("专业", "{0}_金额") \'添加专业列用于垂直分组,并设置了Pattern参数 Else b.HGroups.AddDef("专业") \'添加专业列用于水平分组 b.VGroups.AddDef("主项名称", "{0}_金额") \'添加主项名称列用于垂直分组,并设置了Pattern参数 End If b.Totals.AddDef("金额", "金额") \'添加数量列用于统计 b.HorizontalTotal = True b.VerticalTotal = True b.HorizontalProportion = True b.Build \'生成统计表 Tables("Form_Stastistics_tbl_Stastistics").DataSource = b.BuildDataSource() 运行错误: 统计错误,错误原因:在查询定义的SELECT列表中,别名‘金额’循环引用 |
-- 作者:有点蓝 -- 发布时间:2022/12/4 22:00:00 -- 参考:http://www.foxtable.com/webhelp/topics/3299.htm |
-- 作者:cherryjing -- 发布时间:2022/12/4 22:04:00 -- 金额列为表达式列,表达式为[单价]*[数量] |
-- 作者:有点蓝 -- 发布时间:2022/12/4 22:11:00 -- 表达式列使用AddExp b.Totals.AddExp("金额", "[单价]*[数量]")
|
-- 作者:cherryjing -- 发布时间:2022/12/4 22:20:00 -- 修改代码如下: Dim b As New SQLCrossTableBuilder("交叉统计表1", "设备材料表") \'b.C b.AddTable("设备材料表", "主项编号", "主项表", "主项编号") \'添加统计表 If rdoUnit1.Checked Then b.HGroups.AddDef("{主项表}.主项名称") \'添加客户列用于水平分组 b.VGroups.AddDef("{设备材料表}.专业", "{0}_{设备材料表}.金额") \'添加产品列用于垂直分组,并设置了Pattern参数 Else b.HGroups.AddDef("{设备材料表}.专业") \'添加客户列用于水平分组 b.VGroups.AddDef("{主项表}.主项名称", "{0}_{设备材料表}.金额") \'添加产品列用于垂直分组,并设置了Pattern参数 End If Output.Show ("chart 2: CrossTableBuilder") b.Totals.AddDef("{设备材料表}.金额") \'添加数量列用于统计 b.HorizontalTotal = True b.VerticalTotal = True b.HorizontalProportion = True b.Build \'生成统计表 这次错误变成了:至少一个参数没有被指定值 |
-- 作者:有点蓝 -- 发布时间:2022/12/4 22:44:00 -- b.VGroups.AddDef("{设备材料表}.专业", "{0}_金额") b.VGroups.AddDef("{主项表}.主项名称", "{0}_金额")
|
-- 作者:cherryjing -- 发布时间:2022/12/5 16:25:00 -- 问题解决,就是表达式列的问题。接着有个新问题,就是如何把主项名称和主项编号同时显示出来,形如: 主项名称(主项编号)
[此贴子已经被作者于2022/12/5 16:39:43编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/12/5 16:41:00 -- 2个列都添加到分组里即可 |