我正试图在一个计算字段中编写一个表达式,以显示一个日期值是否大于另一个:
=(IIF(fields!date1.value>fields!date2.value,"late","on time")
当fields!date2
中有一个值时,此操作效果良好。
但是,如果fields!date2.value
为空,则表达式将返回"on time"。我不希望它这样做,因为date1
可能是1/4/15——如果date2
为空,那意味着它已经过期了,因此我希望计算字段显示"late"。
因此,如果fields!date1.value
是<今天的日期(基本上,如果它是空的,并且fields!date1.value
在今天的日期之前,则意味着它过期了)。
有人能就如何修改该表述以适应这一点提出建议吗?
让我们关注"准时"
以下是"准时"的定义(其他一切都将被视为"迟到"):
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")