2014-10-16 165 views
0

我在我的SQL数据集中有一个名为“ContactType”的字段。该字段具有多个使用“,”分隔符连接的值。使用SSRS中的多值参数筛选字段,并使用多值参数

可以说我有两个记录

Contact Type | RecordId 
-------------|---------- 
A,B,C  | Record1 
B,C,E  | Record2 

现在在SSRS我有一个多值参数作为联系类型过滤器使用。该选项将

  • 一个
  • Ç
  • d
  • Ë
  • ˚F

当我从过滤器中选择A和B我想查如果A或(OR)B存在于上述记录中。这里的问题是ContactType字段是单个字符串,但包含多个值。

如何基于多值参数中的值数组筛选ContactType字段中的值?

回答

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的自定义代码相当不错报告: