1

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

=(IIF(fields!date1.value>fields!date2.value,"late","on time") 

Это прекрасно работает, когда есть значение в fields!date2.

Однако, если fields!date2.value пусто, выражение возвращает «по времени». Я не хочу, чтобы это делалось, так как date1 может быть 1/4/15 - если date2 пуст, это означает, что он просрочен, и поэтому я хочу, чтобы вычисленное поле говорило «поздно».

Поэтому я хочу, чтобы выражение, чтобы сказать «поздно», если fields!date1.value является < сегодняшней даты (в основном, если это пустое и fields!date1.value есть до сегодняшнего дня, то это означает, что он просрочен).

Может ли кто-нибудь посоветовать о том, как изменить выражение, чтобы это учесть?

+0

Просто для уточнения, 'date1' является дата и не может быть пустым,' date2' является дата достижения и может быть нулевой, так ли это? –

+0

Да, это точно правильно –

ответ

1

Давайте сосредоточимся на «вовремя»

Вот что определим «по времени» (все остальное будет считаться «поздно»):

  • Date2 не утратившим Date1> = Date2
  • Date2 является недействительным и Date1> = сегодня

Давайте преобразуем его в выражениях:

  • Not(Fields!date1.Value Is Nothing) And (Fields!date1.Value >= Fields!date2.Value
  • Fields!date2.Value Is Nothing And Fields!date1.Value >= Today()

Вот полное выражение:

=Iif((Not(Fields!date2.Value Is Nothing) And (Fields!date1.Value >= Fields!date2.Value) Or (Fields!date2.Value Is Nothing And Fields!date1.Value >= Today())), "on time", "late") 
+0

Спасибо, что взяли на себя труд, чтобы вернуться: это помогло, и теперь я могу делать то, что мне нужно: я тоже кое-что узнал. Большое спасибо. –

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

  • Нет связанных вопросов^_^