Foxtable(狐表)用户栏目专家坐堂 → 一个统计问题


  共有1492人关注过本帖树形打印复制链接

主题:一个统计问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
一个统计问题  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/27 15:57:00 [只看该作者]

方法一:用 Gettype(String)

 

方法二:直接设置格式

 

For i As Integer = 0 To Tables("统计_Table1").Rows.Count(True) - 1
    dr = Tables("统计_Table1").Rows(i,True)
    dr("占用") = dr("合计") / dr("部门人数")
Next

Tables("统计_Table1").cols("占用").DataCol.SetFormat("0.00%")


 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/27 17:22:00 [只看该作者]

那你那一列改成字符串,那肯定可以的

 

DataTables("统计_Table1").DataCols.Add("占用",Gettype(String))


 回到顶部