我想在 SSRS 报表生成器中添加一个带有通配符的 LIKE 过滤器。我尝试使用报表生成器的过滤数据部分中存在的 contains 子句。我尝试了“*”和“%”,但都失败了。
我试过 MyFieldName 包含 2451 - 这成功 MyFieldName 包含 24* - 这失败 MyFieldName 包含 24% - 这失败
从下面的链接我觉得这是一个老问题,到目前为止还没有解决方案。
你们有什么建议?
谢谢拉维古普塔
_
我想在 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 的报表生成器中,有一个 Like,它可以工作。在搜索字符串中使用 * 作为通配符
回答我自己的问题,下面的功能对我有用:
如果(查找(我的字段名称,“24”)= 1,真,假)
这只是部分答案,因为这适用于 (blabla*) 之类的情况,但不适用于 (bla*bla, blabla*) 之类的情况。因此,欢迎任何有更好想法的人。
从上面达伦的评论中得到了这样做的想法。
谢谢拉维古普塔
_
报表生成器不支持LIKE
运算符。您必须使用CONTAINS
;
这对聚会来说已经很晚了,但我为我的数据集制定了一个参数过滤器的解决方案。使用表达式向我的数据集添加过滤器:
=IIF(InStr(Fields!AccountName.Value, Parameters!paramAccountName.Value) OR Parameters!paramAccountName.Value = "*", TRUE, FALSE)
类型
Boolean
操作员
=
价值
true
该参数默认为“*”,因此报告看起来像是默认抓取所有内容。
我刚刚遇到了这个旧线程,我很好奇为什么你不能使用 like 关键字,因为我一直使用它。你尝试过这样的事情吗?在哪里(帐户名称,例如 '%' + @paramAccountName + '%' 或 @paramAccountName ='')