--
Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("日期", Gettype(Date), 4)
dtb.AddDef("费用类型", Gettype(String), 10)
dtb.AddDef("费用性质", Gettype(String), 10)
dtb.AddDef("费用科目", Gettype(String), 10)
dtb.AddDef("生产部门", Gettype(String), 10)
dtb.AddDef("金额", Gettype(Double))
dtb.Build()
Dim kms() As String = {"成1","成2","成3","成4","成5","成6","成7"}
For Each dr1 As DataRow In DataTables("固定费用分配表").DataRows
For Each km As String In kms
Dim dr2 As DataRow = DataTables("表B").AddNew()
dr2("日期") = dr1("日期")
dr2("费用类型") = dr1("费用类型")
dr2("费用性质") = dr1("费用性质")
dr2("费用科目") = dr1("费用科目")
dr2("生产部门") = km
dr2("金额") = dr1(km)
Next
Next
Dim b As New CrossTableBuilder("统计表1",DataTables("表B"))
Dim dt1 As fxDataSource
b.HGroups.AddDef("日期",DateGroupEnum.none)
b.HGroups.AddDef("生产部门")
b.VGroups.AddDef("费用性质")
b.VGroups.AddDef("费用类型")
b.Totals.AddDef("金额")
dt1 = b.BuildDataSource()
dt1.Show("统计表1")
上述代码结果如下图,没有问题
此主题相关图片如下:1.png
此主题相关图片如下:2.png
但当我加入以下代码,用上表和其他表组合成的报表进行统计时,却出现问题
Dim dic As new Dictionary(of String, String)
For Each c As Col In Tables("统计表1").cols
dic.add(c.Caption, c.name)
Next
If dic.ContainsKey("固定费用_管理费用") = False Then
DataTables("统计表1").dataCols.add("固定费用_管理费用", Gettype(Double))
dic.add("固定费用_管理费用", "固定费用_管理费用")
End If
If dic.ContainsKey("固定费用_研发费用") = False Then
DataTables("统计表1").dataCols.add("固定费用_研发费用", Gettype(Double))
dic.add("固定费用_研发费用", "固定费用_研发费用")
End If
Dim b9 As New GroupTableBuilder("AA",DataTables("统计表1"))
b9.Groups.AddDef("生产部门") \'添加客户列用于分组
b9.Groups.AddDef("事业部") \'添加产品列用于分组
b9.Totals.AddDef(dic("固定费用_管理费用"))
b9.Totals.AddDef(dic("固定费用_研发费用"))
b9.Build \'生成统计表
MainTable = Tables("AA") \'打开生成的统计表
问题结果如下图
此主题相关图片如下:3.png
上图为统计表1
[此贴子已经被作者于2017/7/13 20:35:40编辑过]