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

Coo*_*pps 6 hidden expression row-number reporting-services ssrs-expression

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

=RunningValue(CountDistinct("Table1"),Count,"Table1")
Run Code Online (Sandbox Code Playgroud)

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

=IIf(Fields!MyField.Value + Fields!MyField.Value <> 0, False, True) 
Run Code Online (Sandbox Code Playgroud)

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

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

Ian*_*ton 10

您可以通过组合两个表达式的逻辑来实现此目的.

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

在此输入图像描述

在此输入图像描述

这里,RowNum计算如下:

=RunningValue(Fields!val1.Value, CountDistinct, "Tablix1")
Run Code Online (Sandbox Code Playgroud)

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

=IIf(Fields!val2.Value + Fields!val3.Value <> 0, False, True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

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

在此输入图像描述