2017-02-06 4 views
0

Я написал это выражение и получаю ошибки, не знаю почему.Условное выражение в SSRS

Я пытаюсь получить если Fields!Started.Value находится между 3-6 днями и Fields!NumSuccess.Value = 4, тогда я должен получить «Желтый».

Если Fields!Started.Value более чем на 7 дней старше сегодняшнего дня, а Fields!NumSuccess.Value не равно 4, тогда я должен получить «Красный».

И, наконец, если ни одна из этих работ, то я должен иметь «темно-зеленый»

Но этот код дает мне ошибку message..can вы помочь, пожалуйста?

=IIF((DateDiff("d",Today(),Fields!Started.Value)>=3 and (Fields!Started.Value) <= 6), AND (=Fields!NumSuccess.Value)=4 "Yellow", 
      IIF(DateDiff("d",Today(),Fields!Started.Value)>= 7, AND (=Fields!NumSuccess.Value)!=4, "Red", 
       true,"DarkGreen")) 
+1

У вас есть дополнительные = знаки перед полями! NumSuccess. Какая ошибка вы получаете? –

ответ

0

Попробуйте Switch функцию, которая чище и читаемым:

=Switch(
    DateDiff(DateInterval.Day,CDate(Fields!Started.Value),Today())<=6 and 
    DateDiff(DateInterval.Day,CDate(Fields!Started.Value),Today())>=3 and 
    Fields!NumSuccess.Value=4, "Yellow", 
    DateDiff(DateInterval.Day,CDate(Fields!Started.Value),Today())>7 and 
    Fields!NumSuccess.Value<>4, "Red", 
    true,"DarkGreen" 
) 

Позвольте мне знать, если это помогает.

+1

Я придумал то же выражение примерно через 3 минуты после вас. Для всех, кто интересуется,() после Сегодня не требуется. Иногда IDE будет показывать красную квадратную линию под ними. Это будет работать с ними или без них. –

+0

Еще одна вещь на этом: DateInverval должен быть DateInterval –

+0

@ R.Richards, о, я неправильно поставил ваш глаз. о сегодняшнем и сегодняшнем() вы правы, будучи первым самым чистым. –

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