Tsql SSRS 2008报表生成器:有条件地关闭Tablix筛选器
是否可以根据选择的参数关闭Tablix过滤器?如果一个值为null,我希望筛选数据,但如果另一个值为null,我希望不筛选数据。用户输入开始日期、结束日期和班次或VCN。所有4个参数都可以设置为null。前3个参数找到一系列值的平均值。所以我设置了Tablix过滤器来从数据中删除异常值。例如,它只允许一定范围内的数字。但是,当用户输入VCN时,它将调出一条记录,因此我不希望任何数据被过滤,即使它是异常值,因为有时它将不返回任何值。我将重新设计过滤器以返回布尔值并将值设置为真。然后在过滤器表达式中,可以使用Iif函数检查参数并返回True(包括)或False(排除)Tsql SSRS 2008报表生成器:有条件地关闭Tablix筛选器,tsql,sql-server-2008-r2,ssrs-2008,reporting-services,Tsql,Sql Server 2008 R2,Ssrs 2008,Reporting Services,是否可以根据选择的参数关闭Tablix过滤器?如果一个值为null,我希望筛选数据,但如果另一个值为null,我希望不筛选数据。用户输入开始日期、结束日期和班次或VCN。所有4个参数都可以设置为null。前3个参数找到一系列值的平均值。所以我设置了Tablix过滤器来从数据中删除异常值。例如,它只允许一定范围内的数字。但是,当用户输入VCN时,它将调出一条记录,因此我不希望任何数据被过滤,即使它是异常值,因为有时它将不返回任何值。我将重新设计过滤器以返回布尔值并将值设置为真。然后在过滤器表达式中
这通常是一个更好的策略,即使是简单的过滤器,因为数据类型转换等都很奇怪和变化无常。是的,您可以通过这一点解决方法
[Field1]
=
=IIf(IsNothing(Parameter!MyPar1.Value), Field!Field1.Value, Parameter!MyPar1.Value)
在注释之后,如果仅当打算使用
VCN
过滤器时,才假定VCN
参数为空,则我将对tablix应用以下过滤器
对于日期过滤器:
- 字段:
[Date]
- 操作员:
=
- 公式:
=IIf(IsNothing(参数!VCN.Value),参数!StartDate.Value,字段!Date.Value)
- 字段:
[Date]
- 运算符:
我做了一个变通,只是创建了一个新表,然后根据表达式隐藏了我的其他表 您能提供更多信息吗?用户输入开始日期、结束日期和班次或VCN。所有4个参数都可以设置为null。前3个参数找到一系列值的平均值。所以我设置了Tablix过滤器来从数据中删除异常值。但是,当用户输入VCN时,它将提取单个记录,因此我不希望任何数据被过滤,即使它是异常值,因为有时它将不返回任何值。我的情况是,对于每个表,我有3个过滤器。我的用户输入开始日期、结束日期和班次,也可以只输入VCN编号。如果他们输入VCN编号,我希望过滤器关闭。我允许用户将其他设置为null,然后输入VCN。我如何将您的解决方案应用于我的情况?