是否可以根据选择的参数关闭Tablix过滤器?如果一个值为null,我希望过滤我的数据,但如果不同的值为null,我希望我的数据不被过滤。用户输入开始日期,结束日期和Shift OR VCN。所有4个参数都可以设置为null。前3个参数查找一系列值的平均值。所以我设置了Tablix过滤器来从数据中删除异常值。例如,它只允许某个范围内的数字。但是,当用户输入VCN时,它会提取一条记录,所以我不希望任何数据被过滤,即使它是异常值,因为有时候它不会返回任何值。
答案 0 :(得分:3)
是的,你可以用这个小小的工作。
[Field1]
。=
。在value选项中设置一个类似于下面的表达式,如果在关注的参数中没有设置任何内容,则该过滤器将使过滤器无效:
=IIf(IsNothing(Parameter!MyPar1.Value), Field!Field1.Value, Parameter!MyPar1.Value)
在评论之后,如果您假设VCN
参数仅在VCN
过滤器有意的情况下为空,那么我会将以下过滤器应用于Tablix。
对于日期过滤器:
[Date]
>=
=IIf(IsNothing(Parameter!VCN.Value), Parameter!StartDate.Value, Field!Date.Value)
第二个日期过滤器:
[Date]
<=
=IIf(IsNothing(Parameter!VCN.Value), Parameter!EndDate.Value, Field!Date.Value)
对于转换过滤器:
[Shift]
=
=IIf(IsNothing(Parameter!VCN.Value), Parameter!Shift.Value, Field!Shift.Value)
对于 VCN 过滤器:
[VCN]
=
=IIf(IsNothing(Parameter!VCN.Value), Field!VCN.Value, Parameter!VCN.Value)
答案 1 :(得分:0)
我会重新设计过滤器以返回布尔值并将值设置为True。然后在Filter Expression中,您可以使用Iif函数检查您的Parameter并返回True(包含)或False(排除)。
对于简单的过滤器来说,这通常是一种更好的策略,因为数据类型转换等是奇怪的和易变的。
答案 2 :(得分:0)
我做了一个工作,只是创建了一个新表,然后根据表达式隐藏了我的其他表。