Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计


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

主题:[求助]交叉统计

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/13 17:33:00 [显示全部帖子]

 统计列?

 

CrossTableBuilder包括以下属性: 

Caption:        字符型,指定新生成统计表的标题。
HGroups:         集合,用于添加水平分组列。
VGroups:         集合,用于添加垂直分组列。
Totals:          集合,用于添加统计列。
OrderByTotal:   逻辑型,在有多个统计列时,是否将同一个统计列的数据排放在一起。
HorizontalTotal: 逻辑型,水平方向是否自动汇总。
VerticalTotal:  逻辑型,垂直方向是否自动汇总。

Subtotal:        逻辑型,设为True,将对交叉统计结果进行二次统计,生成汇总模式。
SubtotalLevel:   整数型,根据多少个分组生成汇总模式。
Decimals:       整数型,用于设置统计结果要保留的小数位数。
Filter:         字符型,如果只是对SourceDataTable中的部分数据进行统计,可用Filter属性设置条件。 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/13 17:34:00 [显示全部帖子]

 其实你还可以用 sqlCrossTableBuilder

 

http://www.foxtable.com/help/topics/1627.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/13 17:40:00 [显示全部帖子]

以下是引用lesliecheung912在2014-6-13 17:37:00的发言:
定义交叉表时:Dim g As New CrossTableBuilder("政治面貌", DataTables("政治面貌"))
但是窗口中的表是查询表啊,那应该如何定义?

 

Tables("窗口1_Table1").DataSource = g.BuildDataSource


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/13 18:07:00 [显示全部帖子]

以下是引用lesliecheung912在2014-6-13 18:05:00的发言:
将这个datasource放到定义的后面的话还是不行,会报 "未将对象引用设置到对象的实例" 的错误

 

窗口名、表名你都没有改一下么?

 

Dim g As New CrossTableBuilder("政治面貌", DataTables("部门员工政治面貌"))
g.HGroups.AddDef("工作部门")
g.VGroups.AddDef("政治面貌")
g.Totals.AddDef("人数", "人数")

Tables("窗口1_Table1").DataSource = g.BuildDataSource


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 15:47:00 [显示全部帖子]

 表不加载,不可以用交叉统计;

 

 如果是表的数据没有加载,就用 sqlCrossTableBuilder

 

http://www.foxtable.com/help/topics/1627.htm

 

[此贴子已经被作者于2014-6-15 15:47:25编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 16:05:00 [显示全部帖子]

 呃,应该没问题的。删除 g.Build()

 

[此贴子已经被作者于2014-6-15 16:05:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 16:11:00 [显示全部帖子]

g.Totals.AddDef("员工编号", "员工编号")

 

改成

 

g.Totals.AddDef("员工编号", AggregateEnum.Count, "员工编号")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 16:17:00 [显示全部帖子]

以下是引用lesliecheung912在2014-6-15 16:15:00的发言:
我现在想在窗口中加一个空间来选择工作部门,然后在查询表中搜索出一个部门的统计情况,这样能在代码中实现吗?

 

设置filter即可,红色代码替换成文本框的值。

 

g.Filter = "工作部门 = 'IT部'"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 16:29:00 [显示全部帖子]

以下是引用lesliecheung912在2014-6-15 16:27:00的发言:
设好这个Filter以后在哪里体现出来呢?

 

原本你不是生成了查询表了么?

 

加入一句代码 g.Filter = "工作部门 = 'IT部'"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/15 16:30:00 [显示全部帖子]

如果你要的是分组统计,可以参考这里

 

http://www.foxtable.com/help/topics/1626.htm

 


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