2

是否可以根据选择的参数关闭 Tablix 过滤器?如果一个值为空,我希望我的数据被过滤,但如果另一个值为空,我希望我的数据不被过滤。用户输入开始日期、结束日期和班次或 VCN。所有 4 个参数都可以设置为空。前 3 个参数查找一系列值的平均值。所以我设置了 Tablix 过滤器以从数据中删除异常值。例如,它只允许一定范围内的数字。但是,当用户输入 VCN 时,它会拉出一条记录,因此即使它是异常值,我也不希望过滤任何数据,因为有时它不会返回任何值。

4

3 回答 3

3

是的,你可以通过这个小工作。

  1. 在 tablix 上的过滤选项中选择要过滤的字段,例如[Field1]
  2. 将运算符设置为=
  3. 在 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)
于 2013-03-19T09:53:18.187 回答
0

我会重新设计您的过滤器以返回布尔值并将值设置为 True。然后在过滤器表达式中,您可以使用 Iif 函数来检查您的参数并返回 True(包含)或 False(排除)。

对于即使是简单的过滤器,这通常也是一个更好的策略,因为数据类型转换等是奇异且变化无常的。

于 2013-03-18T22:28:35.067 回答
0

我做了一个解决方法,只是创建了一个新表,然后根据表达式隐藏了我的其他表。

于 2013-03-19T19:02:20.063 回答