Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSRS-添加“安全”字样;例如;报表生成器的筛选条件_Sql Server_Reporting Services_Report Builder2.0 - Fatal编程技术网

Sql server SSRS-添加“安全”字样;例如;报表生成器的筛选条件

Sql server SSRS-添加“安全”字样;例如;报表生成器的筛选条件,sql-server,reporting-services,report-builder2.0,Sql Server,Reporting Services,Report Builder2.0,我想在SSRS报表生成器中添加一个类似于带通配符的过滤器。我尝试使用报表生成器的filter data部分中的contains子句。我尝试了“*”和“%”,但都失败了 我试过了 MyFieldName包含2451-此成功 MyFieldName包含24*-此操作失败 MyFieldName包含24%-此操作失败 从下面的链接,我觉得这是一个老问题,至今没有解决办法 你们有什么建议 谢谢 拉维·古普塔您可以使用InStr功能 =IIF(InStr(Fields!MyFieldName.Value

我想在SSRS报表生成器中添加一个类似于带通配符的过滤器。我尝试使用报表生成器的filter data部分中的contains子句。我尝试了“*”和“%”,但都失败了

我试过了 MyFieldName包含2451-此成功 MyFieldName包含24*-此操作失败 MyFieldName包含24%-此操作失败

从下面的链接,我觉得这是一个老问题,至今没有解决办法

你们有什么建议

谢谢

拉维·古普塔

您可以使用
InStr
功能

=IIF(InStr(Fields!MyFieldName.Value, "2451"),TRUE,FALSE)

报表生成器不支持
LIKE
运算符。您必须使用
包含

回答我自己的问题,下面的函数对我很有用:

IF(FIND(MyFieldName,“24”)=1,TRUE,FALSE)

这只是一个部分答案,因为它适用于(blabla*)这样的情况,但不适用于(bla*bla,blabla*)这样的情况。因此,任何有更好想法的人都是最受欢迎的

达伦在上面的评论中提出了这样做的想法

谢谢

拉维·古普塔

在SSR中,我们不能像
那样使用
。您可以使用
Contains
来代替它

IIF((MyFieldName).ToString().Contains("RequiredString"),"True","False)

在VisualStudio中的报表生成器中,有一个Like,它可以正常工作。在搜索字符串中使用*作为通配符

这已经很晚了,但我为数据集的参数过滤器找到了解决方案。 使用
表达式:

=IIF(InStr(Fields!AccountName.Value, Parameters!paramAccountName.Value) OR Parameters!paramAccountName.Value = "*", TRUE, FALSE)
类型

Boolean  
操作员

=

true

该参数默认为“*”,因此报告在默认情况下似乎会捕获所有内容。

我刚刚遇到了这个旧线程,我很好奇为什么您不能使用like关键字,因为我一直使用它。 你试过这样的吗?
其中(AccountName,如“%”+@paramAccountName+'%”或“@paramAccountName=”)

感谢darren的及时回复,我需要的是“=IIF(InStr(Fields!MyFieldName.Value,“2451*”),TRUE,FALSE)”,我在写这篇文章时会出错,说无效字符。如果(FIND(MyFieldName,“24”)=1,TRUE,FALSE),下面的代码对我有用从你的回答中得到了这个想法。谢谢我将把这个作为我自己问题的答案,但只能在8小时后才能这样做。在我看来,这并不能真正回答问题,因为它不处理通配符。OP能够继续他的项目是件好事,但这对正在寻找在SSRS过滤器中使用通配符的方法的未来用户没有帮助。@TabAlleman这个答案已经被接受并帮助了OP,这是我的目标。如果您有更好的解决方案,请随时发布。