SSRS“或”过滤逻辑可从“ =”和“ IN”运算符过滤

时间:2018-10-04 18:58:31

标签: sql-server vb.net reporting-services

我正在处理一个报表,该报表需要从两个内置字段中的任何一个过滤数据。因此我根据下面的文章Reporting Services (SSRS) OR Filter Logic使用“ FilterExpression”查询我的要求。这篇文章足够好,可以处理大多数情况。但是我试图使用“ =”和“ IN”运算符进行过滤。

从本文提到的示例中,如果我想从州列表或特定国家/地区过滤数据,即我想从州(华盛顿,明尼苏达州,田纳西州,俄勒冈州)或国家/地区(美国)过滤数据,该怎么办。我知道有人可能建议只使用“国家/地区”字段,但是我的应用程序与示例稍有不同,它应该根据两个列值中的任何一个来过滤数据。因此,我在全新的“ filterexpression”中尝试了以下操作,并删除了各个过滤器:

$gohere = "https://stackoverflow.com";

private function processRedirect($gohere){
        return Redirect::away($gohere);
    }
}

但是似乎代码中没有插入“ IN”,因为窗口下方显示了一条红线,所以我需要找到一个替代方法(尚未弄清楚)。后来,我尝试按照文章中的内容将“值”设置为“真”(在函数日志旁边的表达式),表达式类型的数据类型为布尔值,但是会出错(我不知道如何它确实有效)。

2 个答案:

答案 0 :(得分:1)

我将使用 InStr 函数在列表中搜索“状态”字段。

您的表情如下:

=IIF(Fields!Country.Value = "United States" Orelse InStr("Washington,Minnesota,Tennessee, Oregon", Fields!State.Value) > 0, 1, 0)

我通常使用1和0作为过滤器值-将它们作为布尔值进行比较时,SSRS并不总是像 1 = 1 这样的表达式返回的TRUE FALSE。

Microsoft: Instr-function

答案 1 :(得分:0)

我最近遇到了同样的需要,使用DATASET FILTER with OR criteriaIN operator来进行EQUALS (=) operator

[Hannover Fist]的答案包括带有INSTR()函数的表达代码。在我的方案中,我不得不根据Number Datatype值进行过滤。预告开发人员... INSTR()表达式仅与TEXT数据类型值可靠。请参阅下面提供的屏幕截图。

我不知道为什么Microsoft不仅仅提供将 假定的[AND]条件 更改为 可配置的[AND / OR]条件 ,由报表开发者选择。配置过滤器条件将比BOOLEAN FILTER EXPRESSION解决方法简单得多。


SSRS-DatasetFilter_(OR Condition-IN Filter).png

enter image description here