2014-10-16 169 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的自定義代碼相當不錯報告: