表中的SSRS行号,不包括隐藏行

时间:2013-09-23 06:51:42

标签: reporting-services expression hidden row-number ssrs-expression

我使用以下表达式来获取SSRS中表的行号:

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

我还使用行可见性属性的表达式。让我们说可见性表达式是

=IIf(Fields!MyField.Value + Fields!MyField.Value <> 0, False, True) 

我的行号表达式不考虑该行是否可见。

我显然可以更改我的数据集查询,但是可以只更改我的行号表达式以仅包含未隐藏的行吗? 感谢

1 个答案:

答案 0 :(得分:10)

你可以通过结合两个表达式的逻辑来实现这一点。

假设您有一个简单的DataSet和基于此的简单Tablix:

enter image description here

enter image description here

此处, RowNum 计算如下:

=RunningValue(Fields!val1.Value, CountDistinct, "Tablix1")

接下来,让我们使用基于其他两个字段的表达式隐藏一些行:

=IIf(Fields!val2.Value + Fields!val3.Value <> 0, False, True)

enter image description here

这会破坏 RowNum ,但我们可以修改表达式以忽略隐藏的行。我们通过将它们清空(即将SSRS设置为Nothing)来执行此操作 - CountDistinct将不会考虑任何Nothing值:

=RunningValue(IIf(Fields!val2.Value + Fields!val3.Value <> 0, Fields!val1.Value, Nothing)
    , CountDistinct
    , "Tablix1")

现在 RowNum 根据需要忽略隐藏的行:

enter image description here