-- 作者:douglas738888
-- 发布时间:2016/12/27 15:49:00
-- 一个统计问题
请教老师,用groupTableBuilder不能实现b1.VGroups.AddDef("专业部室","专业部室_{0}") 这样的统计,用交叉统计,形成的水平合计,怎样在增加列中进行表达式计算,下面代码报错“从字符串“”无法转换为Double,无效,0.00 改为0.00%类型不匹配”
是否只能用代码指定固定列才行?
Dim b1 As New SQLCrossTableBuilder("统计表2","工作策划副表")
b1.C b1.HGroups.AddDef("项目名称") b1.HGroups.AddDef("设计阶段") b1.HGroups.AddDef("部门人数") b1.VGroups.AddDef("专业部室","专业部室_{0}") b1.Totals.AddDef("执行人",AggregateEnum.Count) b1.Filter = "审批完成 = 0" b1.HorizontalTotal = True b1.VerticalTotal = True Tables("统计_Table1").DataSource = b1.BuildDataSource() DataTables("统计_Table1").DataCols.Add("占用",Gettype(Double)) Dim dr As Row For i As Integer = 0 To Tables("统计_Table1").Rows.Count(True) - 1 dr = Tables("统计_Table1").Rows(i,True) dr("占用") = Format(dr("合计") / dr("部门人数"),"0.00%") Next
|
-- 作者:douglas738888
-- 发布时间:2016/12/27 17:07:00
--
老师,还是报错:从字符串“”无法转换为Double 合计列是系统生成的 HorizontalTotal: 水平方向自动汇总。 是否合计列是STRING
部门人数 是 双精度
b1.VGroups.AddDef("专业部室","专业部室_{0}") b1.Totals.AddDef("执行人",AggregateEnum.Count) 这个也应该是双精度吧,还是是string
如果用 专业部室_变电室gdr/部门人数,提示找不到“专业部室_变电室gdr”
此主题相关图片如下:未标题-1.jpg
[此贴子已经被作者于2016/12/27 17:12:59编辑过]
|