Jon*_*son 5 reporting-services
在SQL Reporting 2008中,如何确定数组是否包含字符串?
示例,希望以下内容返回“ 1”:
IIf(Split("a,b,c", ",").CONTAINS("a"), "1", "0")
Run Code Online (Sandbox Code Playgroud)
什么可以代替上述CONTAINS功能?不可能吗 这个值就是我的表格的FilterExpression。其目的是决定显示什么和隐藏什么。
让我们用作MyLettersParameter多选参数。要确定它是否包含“a”,请使用:
=Array.IndexOf(Parameters!MyLettersParameter.Value, "a") > -1
Run Code Online (Sandbox Code Playgroud)
上面的代码返回trueor false。要返回“1”,请使用:
=IIf(Array.IndexOf(Parameters!MyLettersParameter.Value, "a") > -1, "1", "0")
Run Code Online (Sandbox Code Playgroud)
如果你只是在一个表达中寻找答案,我并不肯定。但是,您可以编写 .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
Run Code Online (Sandbox Code Playgroud)
使用以下语法来引用它:
=code.Contains(param1,param2,param3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |