我正在处理一个报表,该报表需要从两个内置字段中的任何一个过滤数据。因此我根据下面的文章Reporting Services (SSRS) OR Filter Logic使用“ FilterExpression”查询我的要求。这篇文章足够好,可以处理大多数情况。但是我试图使用“ =”和“ IN”运算符进行过滤。
从本文提到的示例中,如果我想从州列表或特定国家/地区过滤数据,即我想从州(华盛顿,明尼苏达州,田纳西州,俄勒冈州)或国家/地区(美国)过滤数据,该怎么办。我知道有人可能建议只使用“国家/地区”字段,但是我的应用程序与示例稍有不同,它应该根据两个列值中的任何一个来过滤数据。因此,我在全新的“ filterexpression”中尝试了以下操作,并删除了各个过滤器:
$gohere = "https://stackoverflow.com";
private function processRedirect($gohere){
return Redirect::away($gohere);
}
}
但是似乎代码中没有插入“ IN”,因为窗口下方显示了一条红线,所以我需要找到一个替代方法(尚未弄清楚)。后来,我尝试按照文章中的内容将“值”设置为“真”(在函数日志旁边的表达式),表达式类型的数据类型为布尔值,但是会出错(我不知道如何它确实有效)。
答案 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。
答案 1 :(得分:0)
我最近遇到了同样的需要,使用DATASET FILTER with OR criteria
和IN operator
来进行EQUALS (=) operator
。
[Hannover Fist]的答案包括带有INSTR()函数的表达代码。在我的方案中,我不得不根据Number Datatype值进行过滤。预告开发人员... INSTR()表达式仅与TEXT数据类型值可靠。请参阅下面提供的屏幕截图。
我不知道为什么Microsoft不仅仅提供将 假定的[AND]条件 更改为 可配置的[AND / OR]条件 ,由报表开发者选择。配置过滤器条件将比BOOLEAN FILTER EXPRESSION解决方法简单得多。