SSRS中按Location分组的汇总报表自动生成连续序列号问题咨询
解决分组报表中生成连续序列号的问题
我完全懂你遇到的困扰——用RowNumber("DataSet_Result")得到的是原数据集里的原始行号,而你的报表是按Location分组汇总后的结果,每个分组对应原数据里的多行记录,所以才会冒出5、30、543这种跳号的情况。要给每个地点的汇总行生成连续序号,只需要调整RowNumber函数的作用域就行,具体操作如下:
正确的表达式写法
把原来的表达式替换成:
=RowNumber("你的分组名称")
这里的"你的分组名称"需要换成你报表中Location分组的实际名称,不是数据集的名称哦。
怎么找到分组名称?
- 在报表设计器里,打开分组窗格(通常在界面底部,找不到的话可以通过
视图 > 分组窗格调出) - 查看行分组下的分组名称,比如你可能给分组自定义了
LocationGroup,或者系统默认的Group1,把这个名称填到RowNumber的参数里就好。
原理说明
RowNumber函数的作用域参数决定了它的计数范围:
- 当你传入数据集名称(比如
DataSet_Result)时,它会统计整个数据集的所有原始行,而分组汇总后的每一行对应原数据里的多行,所以显示的是原数据中该分组最后一行的行号,自然不连续。 - 当你传入分组名称时,它会在分组的范围内计数,每个分组只会生成一个序号,按分组的显示顺序从1开始递增,正好匹配你要的连续序列号需求。
备选方案(用RunningValue)
如果RowNumber的方式不生效,也可以试试RunningValue函数,同样能生成连续序号:
=RunningValue(Fields!Location.Value, CountDistinct, "DataSet_Result")
这个函数会统计数据集中不同Location的数量,按显示顺序生成连续的序号。
内容的提问来源于stack exchange,提问作者Jagjit Saini
相关产品推荐
相关产品推荐

