如何在SSRS中创建可自定义区间的直方图并找到相关设置选项
在SSRS中创建可灵活调整区间的直方图
Hey,我刚好之前在SSRS里折腾过可动态调整区间的直方图,来给你一步步捋清楚,你遇到的找不到CustomAttribute和ShowColumnAs的问题,大概率是操作对象没选对,咱们先从这里解决:
一、找到CustomAttribute和ShowColumnAs的正确路径
你说找不到这两个选项,核心是没选中数据系列这个对象,正确操作步骤是:
- 先在报表里插入一个簇状柱形图,把你的数值字段拖到「值」区域,先随便拖个字段到「类别组」(后面会替换成动态分组)。
- 点击柱形图里的柱子(要选中整个数据系列,不是单根柱子),然后按
F4调出属性窗口(如果本来就开着就忽略这步)。 - 在属性窗口里,往下滚动找到以
C开头的分组——CustomAttributes,展开它就能看到ShowColumnAs选项,直接选择Histogram就行,这时候柱子会自动变成无间距的直方图样式。
二、设置可灵活调整的区间参数
要实现动态调整分组大小,咱们用SSRS参数来控制,步骤如下:
- 创建区间大小参数:
- 右键报表数据面板里的「参数」文件夹,选「添加参数」。
- 命名为
IntervalSize,数据类型根据你的数据选(整数就选「整数」,小数区间选「浮点数」),提示文本写“请输入直方图区间大小”,可以设置个默认值比如10。
- 写动态分组表达式:
- 删掉之前拖到「类别组」的字段,右键类别组选「类别组属性」,在「分组依据」里用表达式计算分组。假设你的数值字段是
ValueField,表达式写:
这个表达式会自动把数据按你设置的区间大小分组,比如区间设为10,就会生成0-9、10-19这类分组。=Floor(Fields!ValueField.Value / Parameters!IntervalSize.Value) * Parameters!IntervalSize.Value - 为了让区间标签更友好,在「类别组属性」的「标签」里也写个表达式:
=Floor(Fields!ValueField.Value / Parameters!IntervalSize.Value) * Parameters!IntervalSize.Value & " - " & (Floor(Fields!ValueField.Value / Parameters!IntervalSize.Value) + 1) * Parameters!IntervalSize.Value - 1
- 删掉之前拖到「类别组」的字段,右键类别组选「类别组属性」,在「分组依据」里用表达式计算分组。假设你的数值字段是
- 调整图表数据:
- 把你要统计的字段(比如计数、求和)拖到「值」区域,确保数据系列的
ShowColumnAs已经设为Histogram。
- 把你要统计的字段(比如计数、求和)拖到「值」区域,确保数据系列的
三、常见问题排查
- 还是找不到CustomAttributes?再确认下是不是选中了数据系列(不是整个图表、坐标轴或者类别组),属性窗口是按字母排序的,找C开头的分组肯定能看到。
- 区间显示不对?检查
IntervalSize参数的类型和你的数值字段是否匹配,比如数据是小数的话,参数要选浮点数,表达式里的Floor也可以换成Int,根据你的需求调整。
这样操作下来,你就能得到一个可以通过参数随时调整区间大小的直方图了~
内容的提问来源于stack exchange,提问作者ak_08
相关产品推荐
相关产品推荐

