我在SSRS报告中有一个表,它只显示一个组,而不显示表的详细信息。我想要找出正在显示的项目的行号,以便我可以使用色带。我尝试使用"Rowcount(Nothing)",但是我得到了详细表的行号。
我的底层数据类似于
ROwId Team Fan
1 Yankees John
2 Yankees Russ
3 Red Socks Mark
4 Red Socks Mary
...
8 Orioles Elliot
...
29 Dodgers Jim
...
43 Giants Harry 我的表格只显示了组,如下所示:
ROwId Team
2 Yankees
3 Red Socks
8 Orioles
29 Dodgers
43 Giants 我想让它看起来像
ROwId Team
1 Yankees
2 Red Socks
3 Orioles
4 Dodgers
5 Giants 发布于 2013-07-11 07:19:45
您可以使用RunningValue表达式来完成此操作,如下所示:
=RunningValue(Fields!Team.Value, CountDistinct, "DataSet1")DataSet1是基础数据集的名称。
考虑一下数据:

通过创建一个简单的报告并比较RowNumber和RunningValue方法,可以看出RunningValue可以提供所需的结果:

发布于 2013-07-11 07:19:18
只需使用一点vbcode就可以轻松实现这一点。转到Report - Properties - code并键入类似以下内容:
Dim rownumber = 0
Function writeRow()
rownumber = rownumber + 1
return rownumber
End Function然后在您的手机上,使用=Code.writeRow()调用此函数
一旦您开始在表中使用组,RowNumber和RunningGroup函数就开始出现一些奇怪的行为,因此只需编写一些代码就可以更容易地完成您想要做的事情。
发布于 2017-11-08 09:00:16
我不相信上面提供的所有建议都是万能的解决方案。我的场景是,我有一个包含多列的分组。我不能使用约定的解决方案RunningValue,因为我没有一个列可以在函数中使用,除非我将它们组合在一起(比方说一个计算列),以形成一个唯一的列。
出于同样的原因,我不能使用VBA代码函数,并且我必须在多个列和多个属性中使用相同的值,除非我使用其他类型的智能,如果我知道使用的次数(比如N列*M个属性),那么我只能在每次NxM调用时更新RowNumber。然而,我看不到任何计数列函数,所以如果我添加一个列,我还需要增加N常量。我也不想添加一个新的列,因为我不知道如何隐藏它,我也不能写一个vba系统,在这个系统中,我可以调用不返回任何内容但更新值的函数A(即每个组行只调用一次),然后调用另一个函数GetRowNumber,它只是返回rownumber变量,因为着色是在调用之前完成的,所以我总是有一列与其余的列不同步。
我唯一能想到的另外两个解决方案是将前面提到的组合列放在查询本身中,或者对所有分组列使用DENSE_RANK和排序。
DENSE_RANK() OVER (ORDER BY GroupCol1, GroupCol2, ...) AS RowNumberhttps://stackoverflow.com/questions/17581613
复制相似问题