我的SQL数据集中有一个名为“ContactType”的字段。此字段具有多个与“,”分隔符连接的值。
假设我有两条记录
Contact Type | RecordId
-------------|----------
A,B,C | Record1
B,C,E | Record2
现在在SSRS中,我有一个多值参数用作联系人类型过滤器。选项将是
当我从过滤器中选择A和B时,我想检查上面记录中是否存在A或(OR)B。这里的问题是ContactType
字段是单个文本字符串,但包含多个值。
如何根据多值参数中的值数组过滤ContactType
字段中的值?
答案 0 :(得分:0)
我认为最好的方法是使用自定义代码编写一个简单的函数。可以从报告菜单访问自定义代码编辑器。
然后使用这样的函数:
Function CheckContactType(ContactTypeList AS String, ContactTypeFilter AS Parameter) As Boolean
Dim contactTypes As String() = ContactTypeList.Split(",")
For i As Integer = 0 To (ContactTypeFilter.Count-1)
If contactTypes.Contains(ContactTypeFilter.Value(i)) Then Return True
Next i
Return False
End Function
然后你的过滤表达式就是这样:
=Code.CheckContactType(Fields!ContactType.Value, Parameters!ContactTypeFilterParameter)
您可以对值表达式使用=
运算符:
=True
自定义代码功能正在使用.NET String.Split()和Array.Contains()方法。这些MSDN页面非常适合在SSRS报告中了解有关自定义代码的更多信息: