2013-12-12 2 views
2

В SSRS 2005 я пытаюсь настроить выражение для возврата true или false в зависимости от того, является ли значение одного из ReportItems находится в списке (возможно нескольких) значений, выбранных пользователем из списка при запуске отчета.SSRS 2005: как написать инструкцию IIF для проверки того, находятся ли значения в списке параметров

Вот выражение до сих пор:

=iif(Trim(ReportItems!Category_2.Value) = Trim(Parameters!Category.Value(0)), False, True) 

Вы можете видеть, что истина и ложь в выражении перепутаны - это потому, что контролировать свойство строки «скрытый», и я хочу, чтобы НЕ скрыть строки, в которых значение находится в списке.

Выражение отлично работает при выборе отдельных значений для параметра, но для нескольких значений оно отображает только результаты для самого первого.

Надеюсь, вы сможете помочь.

+1

В вашем выражении Trim (Parameters! Category.Value (0) - это первый параметр, переданный в параметре с несколькими значениями. Вместо этого попробуйте использовать функцию Join() или LookupSet для получения всех параметров. – ShellNinja

ответ

0

Попробуйте использовать

=iif(Trim(ReportItems!Category_2.Value) = Trim(Parameters!Category.Value), False, True) 
0

Большое спасибо за вашу помощь. Эти множественные значения действительно меня раздражали, и мне никогда не удалось заставить Trim работать правильно, поэтому я решил использовать следующее двухэтапное решение:

(1) В операторе SQL SELECT я определил новое значение, называемое «InCategory», присвоив ему значение 1 или 0 в зависимости от того категории было один из введенной Категории или нет:

CASE WHEN Category IN (@Category) THEN 1 ELSE 0 END AS 'InCategory', 

(2) Тогда в SSRS, мое выражение для «Скрытого 'в отчете стало простым, скрывая строку, если сумма «InCategory» для этой строки была 0:

=iif((Sum(Fields!InCategory.Value) = 0), True, False) 

Еще раз спасибо за вашу помощь. Я очень благодарен вам и буду использовать этот сайт еще раз.

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