我想在 SSRS 报告生成器中添加带有通配符的 LIKE 过滤器。我尝试使用报表生成器的过滤数据部分中存在的 contains 子句。我尝试了“*”和“%”,但都失败了。
我试过了 MyFieldName 包含 2451 - 成功 MyFieldName 包含 24* - 这失败了 MyFieldName 包含 24% - 这失败了
从下面的链接我觉得这是一个老问题,到目前为止还没有解决方案。
你们有什么建议?
谢谢
拉维·古普塔
您可以使用
InStr
功能
=IIF(InStr(Fields!MyFieldName.Value, "2451"),TRUE,FALSE)
在 SSRS 中我们不能使用
Like
。您可以使用 Contains
代替它。
IIF((MyFieldName).ToString().Contains("RequiredString"),"True","False)
在 Visual Studio 的报告生成器中,有一个“赞”并且它可以工作。在搜索字符串中使用 * 作为通配符
回答我自己的问题,以下功能对我有用:
IF(FIND(MyFieldName, "24") = 1, TRUE, FALSE)
这只是部分答案,因为这适用于 (blabla*) 等情况,但不适用于 (bla*bla, blabla*) 等情况。因此,非常欢迎任何有更好想法的人。
从上面达伦的评论中得到了这样做的想法。
谢谢
拉维·古普塔
报表生成器不支持
LIKE
运算符。您必须使用 CONTAINS
;
这已经很晚了,但我为我的数据集制定了参数过滤器的解决方案。
使用
向我的数据集添加过滤器
表情:
=IIF(InStr(Fields!AccountName.Value, Parameters!paramAccountName.Value) OR Parameters!paramAccountName.Value = "*", TRUE, FALSE)
类型
Boolean
操作员
=
价值
true
参数默认为“*”,因此报告默认情况下会抓取所有内容。
我刚刚遇到这个旧线程,我很好奇为什么你不能使用 like 关键字,因为我一直在使用它。 你尝试过这样的事情吗? 其中(AccountName 如 '%' + @paramAccountName + '%' 或 @paramAccountName ='')
="*" & 参数!key_word.Value & "*"
“*”为半角字符。