如何在SSRS报告中获取行号矩阵

时间:2013-11-26 13:59:34

标签: reporting-services

我正在创建矩阵报告。 需要在列表和行分组下的Matrix表中显示行号, 像这样

     A   B   C

X    1   1   1

Y    2   2   2

Z    3   3   3

目前我正在将此表达式用于行号,但我的计数不正确。

=RunningValue(CountDistinct("YourTableName"),Count,"YourTableName")

3 个答案:

答案 0 :(得分:0)

根据我的经验,仅RowNumber就会给每一行的总和

但是,仅在一个字段上具有范围的RowNumber将在单独一行上给出动态字段的总和。

因此,为我解决的是:

=RowNumber("DataSet1")/RowNumber("StudentId")

当DataSet1来自我所有的矩阵信息时,StudentId只是一行中的一个字段。

答案 1 :(得分:0)

如果你的矩阵是100%满的话,Riddle-Master有一个不错的答案,即没有空单元格。

RowNumber("DataSet1")将包含所有字段的总和

RowNumber("RowGroup")将包含每个行组中数字的字段

但是,如果你有空单元格,你最终会得到一些分数和错开的数字。

我发现在this site上我认为是更好的答案,只要您在每一行中都有一个与上一个唯一的值。在我的情况下,我使用Customer_Num

转到“报告属性”,打开“代码”属性并粘贴以下代码:

public dim LastNum as String
public dim rowCount as int32 = 0

Public Function GetRowNum(byval Num as String) as Integer    
      if Num <> LastNum then
            rowCount = rowCount + 1
            LastNum = Num 
      End If
      Return rowCount
End Function

然后在您想要行号的单元格中,通过以下表达式:

=Code.GetRowNum(Fields!Customer_Num.Value)

这应该将每个值与每行的前一个值进行比较,并给出一个递增的行号,无论每行中有多少个单元格值。

答案 2 :(得分:0)

对于行和列分组的矩阵,最适合我的是:

=RowNumber("YourColumnGroupName") / CountRows()