2014-10-16 3 views
0

У меня есть поле «ContactType» в моем наборе данных SQL. Это поле имеет более одного значения, объединенного с разделителем «,».Отфильтровать поле со связанными значениями по многозначному параметру в SSRS

Допустит, у меня есть две записей

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

Теперь в SSRS У меня есть параметр многозначного для использования в качестве Типа контакта фильтра. Параметры будут

  • B
  • C
  • D
  • E
  • F

Когда я выбираю A и B из фильтра я хочу проверить если A или (OR) B присутствуют в вышеуказанных записях. Проблема здесь в том, что поле ContactType представляет собой одну строку текста, но содержит более одного значения.

Как я могу отфильтровать значения в поле ContactType на основе массива значений в многозначном параметре?

ответ

0

Я думаю, что лучший способ сделать это - написать простую функцию, используя собственный код. Редактор настраиваемого кода можно получить из меню Report.

Затем используйте функцию:

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 отчеты:

Смежные вопросы