SSRS 2005中的组的RowNumber

时间:2013-07-10 21:55:11

标签: reporting-services reportingservices-2005 ssrs-grouping

我在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  

3 个答案:

答案 0 :(得分:29)

您可以使用RunningValue表达式执行此操作,例如:

=RunningValue(Fields!Team.Value, CountDistinct, "DataSet1")

DataSet1是基础数据集的名称。

考虑数据:

enter image description here

创建一个简单的报告并比较RowNumberRunningValue方法,表明RunningValue提供了您所需的结果:

enter image description here

答案 1 :(得分:8)

您可以使用一点点vbcode轻松实现此目的。转到报告 - 属性 - 代码并键入如下内容:

Dim rownumber = 0
Function writeRow()
  rownumber = rownumber + 1
  return rownumber
End Function

然后在您的手机上,使用=Code.writeRow()

调用此功能

一旦你开始在表中使用组,RowNumber和RunningGroup函数就会开始获得一些奇怪的行为,因此只需编写一些代码来做你想做的事情就更容易了。

答案 2 :(得分:0)

我不相信上面提出的所有建议都适用于所有解决方案。我的方案是我有一个包含多列的分组。我无法使用约定的解决方案RunningValue,因为我没有在函数中使用单个列,除非我将它们组合(例如计算列)以创建单个唯一列。

我出于同样的原因无法使用VBA代码功能,我不得不在多个列和多个属性中使用相同的值,除非我使用其他类型的智能,如果我知道使用次数(比如N列* M属性)然后我只能在每次NxM调用时更新RowNumber,但是我看不到任何计数列的功能,所以如果我添加了一列,我还需要增加我的N常量。我也不想在我的分组中添加一个新列,因为我无法弄清楚如何隐藏它而且我无法编写一个vba系统,我可以调用函数A,它只返回值但是更新了值(即调用每个组行只有一次)然后调用另一个函数Ge​​tRowNumber,它只返回rownumber变量,因为着色是在调用之前完成的,所以我总是让一列与其余列不同步。

我能想到的另外两个解决方案是将前面提到的组合列放在查询本身中,或者使用DENSE_RANK并对所有组列进行排序,即

@app.route('/<setName>', methods=['GET'])
def set(setName):
    if setName in badSets:
        return render_template('error.html')
    cardset = cards.get(setName)
    return render_template('set.html', cardset=cardset)