1

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

=(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在今天的日期之前,那么它意味着它已经过期了)。

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

4

1 回答 1

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")
于 2015-07-01T13:24:41.420 回答