原本用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列表中,别名‘金额’循环引用