【问题标题】:How can i get RowNumber Matrix in SSRS Report如何在 SSRS 报告中获取行号矩阵
【发布时间】:2013-11-26 13:59:33
【问题描述】:

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

     A   B   C

X    1   1   1

Y    2   2   2

Z    3   3   3

目前我正在使用此表达式作为行号,但计数不正确。

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

【问题讨论】:

  • 不能用RowNumber吗?
  • 我也用 rownumber 测试过
  • =RowNumber("GroupbyCategory") 如果我使用like,它也会显示不正确。
  • A,B,C 是列分组的结果 X,Y,Z 是报表中行分组的结果。

标签: reporting-services


【解决方案1】:

如果你的矩阵是 100% 满的,即没有空单元格,谜语大师有一个不错的答案。

RowNumber("DataSet1") 将包含所有字段的运行 sum

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

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

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

    根据我的经验,仅行号就可以sum all每一行的动态字段。

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

    因此为我解决的问题是:

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

    当 DataSet1 来自我获取所有矩阵信息的地方,而 StudentId 只是一行中的一个字段。

    【讨论】:

    • 请注意,StudentId 不能只是一列,我假设它是您拥有的行组...否则您会收到错误消息。
    【解决方案3】:

    对具有行和列分组的矩阵有用的是:

    =RowNumber("YourColumnGroupName") / CountRows()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多