SSRS:计算字段中的表达式

SSRS: expression in a calculated field

我正在尝试在计算字段中编写一个表达式,以显示一个日期值是否大于另一个日期值:

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

fields!date2.

中有一个值时,这工作正常

但是,如果fields!date2.value为空,表达式returns "on time"。我不希望它这样做,因为 date1 可能是 1/4/15 - 如果 date2 为空,这意味着它已经过期了,因此我希望计算字段说 "late".

Therefore I want the expression to say "late" if fields!date1.value is < today's date (基本上,如果它是空白的并且 fields!date1.value 在今天的日期之前,那么这意味着它已经过期了) .

谁能建议如何修改表达式以适应这种情况?

让我们关注"on time"

这是定义 "on time" 的内容(其他所有内容都将被视为 "late"):

  • 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")