【问题标题】:How to implement 'Not In' Filter in SSRS?如何在 SSRS 中实现“不在”过滤器?
【发布时间】:2015-11-20 10:51:04
【问题描述】:

我在 SSRS 中有一个需要过滤的字段。 对于 3 个表,我可以使用 IN 过滤器。 但我需要使用 NOT IN 运算符。该字段包含数值。

我需要能够说不在 (30,31,32,33,34,35,36,37,38,39)

我也不能在数据集中做,需要一个过滤器。

我应该如何实现它?

【问题讨论】:

  • 请提供您尝试过的代码示例,社区可以帮助您展示可能需要更改的内容。

标签: sql sql-server reporting-services ssrs-2008-r2


【解决方案1】:

您可以使用表达式来确定要过滤哪些值。

转到Tablix properties/Filters

expression 中使用:

=IIF(Array.IndexOf(split("30,31,32,33,34,35,36,37,38,39",","),
CStr(Fields!YourField.Value))>-1,"Exclude","Include")

供操作员使用:

=

对于Value 使用:

="Include"

如果这对你有帮助,请告诉我

【讨论】:

  • 对于任何想要将其与参数一起使用的人,只需将字符串数组 ("30,31,32,33,34,35,36,37,38,39") 替换为以下内容代码:(加入(参数!YourParameter.Value,“,”))。这可以使用来自参数的 NOT IN 值过滤表,这正是我需要 NOT IN 过滤器的目的。最终修改后的表达式将如下所示: =IIf(Array.IndexOf(Split((Join(Parameters!YourParameter.Value, ",")), ","), CStr(Fields!YourField.Value)) > - 1、“排除”、“包含”)
【解决方案2】:

有关我发现更易于使用的所选答案的变体,请参见下文。这是在可见性表达式中,但应该通过将表达式类型设置为布尔值并比较 Expression = True 来轻松移植到过滤器表达式:

=IIf(InStr("unwanted values here", Fields!fieldToCheck.Value), True, False)

【讨论】:

    【解决方案3】:

    首先我想说的是,据我所知,NOT IN 在过滤器的运算符列表中不可用。

    要以其他方式实现相同的目标,请参考以下链接..它可能会对您有所帮助...

    http://blog.datainspirations.com/2011/01/20/working-with-reporting-services-filters-part-4-creating-a-not-in-filter/

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 2014-11-01
      • 2016-02-21
      • 2017-08-05
      • 2014-09-23
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多