2013-04-16 5 views
2

У меня есть текстовое поле, которое находится за пределами таблицы с использованием SSRS 2008. Я пытаюсь определить, содержит ли какая-либо из строк 2,3 или 4, используя приведенный ниже код. Это работает, но только для первой строки.SSRS IIF оценивает все поля

Есть ли способ оценить все поля, а не только первую строку?

Thanks in advnace.

=IIf(

    (
      Fields!Type.Value = "2" 
      Or Fields!Type.Value = "3" 
      Or Fields!Type.Value = "4" 
     ) 

     , "Yes, found it.", "No, it's missing" 

) 
+0

Почему вы держите его за пределами «таблицы»? Количество строк существует внутри области таблицы, поэтому выражение 'expression' отображается только для 1 строки. Вы можете просто создать« столбец »и написать выражение. – praveen

ответ

2

Он не будет работать, если не определить сферу применения/набор данных, который IIfне поддерживает. Вы можете решить эту проблему:

  • создания Code Это обновит внешний текстовое поле (Right click on the report > Report properties > Code tab)
  • Использование выражения внутри таблицы.

Это единственные решения, о которых я могу думать.

ОБНОВЛЕНИЕ Я просто подумал о решении, которое мне поможет.

=IIf(
    Sum(
     IIf(Fields!Type.Value=2, 1, 0), 
     "YourDataSet" 
    ) = 0, 
    "Not Found", 
    "found " & Fields!Type.Value 
) 

Не уверен, что это применимо к вашей сфере применения, но это другое решение.

+0

Спасибо. Так оно и было. – SGBoise

+0

@SGBoise Добро пожаловать, рад, что это сработало :) – eestein

0

Используйте следующее выражение:

IIF(SUM(IIF(Fields!Type.Value = "2" OR Fields!Type.Value = "3" OR Fields!Type.Value = "4",1,0),"DataSet1")>0,"Yes, found it.", "No, it's missing") 

Где DataSet1 это имя вашего Dataset

Что это делает он подсчитывает, сколько раз он находит либо значение 2, 3 или 4. Если счетчик больше 0, то значение существует, поэтому оно будет показывать «Да, я его нашел»

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