Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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

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 2005 在SSRS 2005 IIF表达式中使用Like运算符_Sql Server 2005_Reporting Services - Fatal编程技术网

Sql server 2005 在SSRS 2005 IIF表达式中使用Like运算符

Sql server 2005 在SSRS 2005 IIF表达式中使用Like运算符,sql-server-2005,reporting-services,Sql Server 2005,Reporting Services,我在SSRS中有一个非常复杂的IIF表达,我想改变细胞的背景颜色,它会根据特定的条件而改变。它在当前状态下运行良好,但我正在尝试为它添加一个类似的条件 下面是它现在的样子(工作): 我想做的是在这一行的某个地方添加一个like type语句,它会说…和类似“Scan”的位置-换句话说,在标题的某个地方添加一个带有“Scan”的位置。locationName也是我在报告中显示的一个字段 ( FormatPercent(Sum(Fields!numberOfIssues.Value)/Fir

我在SSRS中有一个非常复杂的IIF表达,我想改变细胞的背景颜色,它会根据特定的条件而改变。它在当前状态下运行良好,但我正在尝试为它添加一个类似的条件

下面是它现在的样子(工作):

我想做的是在这一行的某个地方添加一个like type语句,它会说…和类似“Scan”的位置-换句话说,在标题的某个地方添加一个带有“Scan”的位置。locationName也是我在报告中显示的一个字段

(
    FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .0001 & "%" 
    And ( First(Fields!errorType.Value) = "TypeA")
)
类似的声明类似于:

... And ( First(Fields!errorType.Value) = "TypeA") And First(Fields!locationName.Value) Like "*Scan*"
但这不起作用。我也试过:

And ( First(Fields!errorType.Value) = "TypeA" And First(Fields!locationName.Value.ToString().Contains("Scan")
这也不行

我可以在SSRS 2005表达式中这样做吗?

谢谢

我认为你的问题在于语法。仔细检查()和的位置,在您的语句中as Contains应该适用于您正在尝试的内容

我还注意到你的发言:

First(Fields!locationName.Value.ToString().Contains("Scan"))
应该是:

First(Fields!locationName.Value).ToString().Contains("Scan")

您也可以尝试使用
IndexOf
功能。IndexOf返回您传递的字符串在源中出现的字符位置。因此,如果大于(或等于)零,则字符串包含字符“Scan”-如果小于零,则源不包含该字符串

Fields!YourField.Value.ToString().IndexOf("Scan") >= 0

尽管它的工作原理与您使用它的方式大致相同。

太棒了!也谢谢你解释IndexOf。现在说得通了!甜心!这就解决了一个完全不同的问题,我需要根据客户机ID的值有条件地显示一个表列。
Fields!YourField.Value.ToString().IndexOf("Scan") >= 0