Foxtable(狐表)用户栏目专家坐堂 → 分组统计表增加列


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

主题:分组统计表增加列

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
分组统计表增加列  发帖心情 Post By:2015/4/23 23:30:00 [只看该作者]

有如下分组统计代码,想统计表上增加一列“财务”,如最后一句用代码1,则不会出现“财务”列,用代码2,则不会出现小计行,如何兼得?

Dim g As New GroupTableBuilder("机型汇总", DataTables("时间"))
g.Groups.AddDef(分组)
g.Groups.AddDef("飞行日期", "月")
g.Totals.AddDef(汇总)
g.Subtotal = True
g.Build()
DataTables("机型汇总").DataCols.Add("财务",Gettype(String),32)

1. Tables("筛选_Table1").DataSource = g.BuildDataSource()
2. Tables("筛选_Table1").DataSource = DataTables("机型汇总")

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


加好友 发短信
等级:三尾狐 帖子:620 积分:6782 威望:0 精华:0 注册:2013/12/17 1:00:00
  发帖心情 Post By:2015/4/24 1:22:00 [只看该作者]

Tables("筛选_Table1").datatable.datacols.add("财务“,gettype(string,32))

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/24 8:37:00 [只看该作者]

增加列之后,原有的汇总模式会取消。

但是你可以增加列之后,用代码给统计表设置汇总模式:
http://www.foxtable.com/help/topics/1372.htm


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/4 15:24:00 [只看该作者]

打算在交叉统计中新增“小计”,且表达式为[轻度] + [严重](按“性质”分组:分为轻度和严重事件),运行结果能实习新增“小计”列,如图

图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图15年05月04日1516_1.jpg
图片点击可在新窗口打开查看
但无法计算,提示无“轻度”列,

代码如下,请教问题在哪儿,谢谢

Dim b As New CrossTableBuilder("交叉统计",DataTables("事件汇总"))
b.HGroups.AddDef("PF")
b.VGroups.AddDef("性质")
b.HGroups.AddDef("事件名称")
b.Totals.AddDef("次数")
Tables("事件统计_Table1").DataSource = b.BuildDataSource()
Tables("事件统计_Table1").DataTable.datacols.add("小计",Gettype(Integer), 32, "[轻度] + [严重]")


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/4 15:27:00 [只看该作者]

如果你这个是统计出来表,列名和标题可能并不是一致

用如下方式获得列名

Dim cs As new Dictionary(of String,String)
For Each c As Col In Tables("交叉统计表").Cols
       cs.Add(c.Caption,c.Name)
Next
Tables("事件统计_Table1").DataTable.datacols.add("小计",Gettype(Integer), 32, "[" & cs(轻度) & "] + [" & cs("严重") & "]")

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/5 9:24:00 [只看该作者]

报错,说是未声明名称“轻度”。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/5 9:25:00 [只看该作者]

说明你根本就没这个列.连标题都没.

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/5 9:30:00 [只看该作者]

 加一个引号

 

Dim cs As new Dictionary(of String,String)
For Each c As Col In Tables("交叉统计表").Cols
       cs.Add(c.Caption,c.Name)
Next
Tables("事件统计_Table1").DataTable.datacols.add("小计",Gettype(Integer), 32, "[" & cs("轻度") & "] + [" & cs("严重") & "]")

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/21 9:07:00 [只看该作者]

现在有个小问题,当“轻度”或“严重”其中一个为空时,小计列就不相加。想用IIF,为空时就作为零,然后相加。但不会写,求教,谢谢

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/21 9:09:00 [只看该作者]

Tables("事件统计_Table1").DataTable.datacols.add("小计",Gettype(Integer), 32, "Isnull([" & cs(轻度) & "],0) + isnull([" & cs("严重") & "],0)")


 回到顶部
总数 14 1 2 下一页