Использование оператора SWITCH в службах отчетов для поля даты - PullRequest
0 голосов
/ 02 июля 2010

Я пытаюсь заставить этот код работать в службах отчетов 2003:

 =switch(
    DateDiff("d", fields!WARRANTY_EXP!value,now()) > 765, "White",
    DateDiff("d", fields!WARRANTY_EXP!value,now()) > 365, "Yellow",
    DateDiff("d", fields!WARRANTY_EXP!value,now()) > 0, "Red",
    DateDiff("d", fields!WARRANTY_EXP!value,now()) < 0, "Gray"
    )

Я пытаюсь закодировать поле так, чтобы, если поле даты осталось в прошлом, оно изменило цвет фона насерый, если он будет в следующем году, то красный, а в ближайшие 1-2 года желтый.Все остальное белое.

Я пытался переставить его, но где-то должно быть неправильное кодирование, поскольку более 2 лет серое, даты в прошлом желтые, а следующий год красный: -S

Большое спасибо,

Пирс

1 Ответ

1 голос
/ 03 июля 2010

Я думаю, что у вас могут быть знаки «больше» и «меньше», неправильные или наоборот, или выражение «сейчас» () и выражение поля в неправильном направлении.

Вместо

  DateDiff("d", fields!WARRANTY_EXP!value,now()) > 0, "Red",

Попробуйте

 DateDiff("d",now(), fields!WARRANTY_EXP!value) > 0, "Red",

# Пример из онлайн-справки: - Проверьте значение поля ImportantDate и верните «Красный», если ему больше недели, и «Синий» в противном случае. Это выражение можно использовать для управления свойством Color текстового поля в элементе отчета: Копирование

= IIF (DateDiff ("d", поля! ImportantDate.Value, Now ())> 7, "Красный", "Синий")

...