在SQL Reporting 2008中,如何确定数组是否包含字符串?
示例,我希望以下内容返回“1”:
IIf(Split("a,b,c", ",").CONTAINS("a"), "1", "0")
什么可以用来取代上面的CONTAINS功能?这不可能吗?这个值是我表的FilterExpression。其目的是决定展示什么以及隐藏什么。
答案 0 :(得分:3)
如果你只是在表达中寻找答案,我不是肯定的。但是,您可以编写.Net方法并将其称为来自报表的自定义dll或“代码”部分的表达式。如果使用内置代码,则可以执行以下操作:
http://www.vbforums.com/showthread.php?t=558440
在SSRS中创建内联代码或引用程序集:
http://bryantlikes.com/pages/824.aspx
更新: 从连接字符串中获取分隔值的示例:
http://www.dotnetperls.com/split-vbnet
更新:
这是您可以使用的功能。你把它放在报告的代码部分:
Public Function Contains(ByVal ItemToCheck As String, ByVal CommaValuesList As String, ByVal delimeter As Char) As Boolean
Dim commaValues() As String = Split(CommaValuesList, delimeter, -1, CompareMethod.Text)
For Each commavalue As String In commaValues
If ItemToCheck.ToLower.Trim = commavalue.ToLower.Trim Then
Return True
End If
Next
Return False
End Function
使用以下语法引用它:
=code.Contains(param1,param2,param3)
答案 1 :(得分:0)
让我们使用MyLettersParameter
作为多选参数。要确定它是否包含“ a”,请使用:
=Array.IndexOf(Parameters!MyLettersParameter.Value, "a") > -1
上面的代码返回true
或false
。要返回“ 1”,请使用:
=IIf(Array.IndexOf(Parameters!MyLettersParameter.Value, "a") > -1, "1", "0")