使用涉及IfThen的CustomFormat

时间:2018-08-03 23:47:22

标签: listview delphi firemonkey

我有一个delphi多设备表单,其列表视图通过实时绑定链接到TFDMEMtable。我在列表视图中显示该表的4个字段。日期的第三个是可以合法为空的日期。我试图在相应的LinkListControlToField条目上使用CustomFormat来设置所需的日期时间格式并处理空日期。我在IDE中设置它,而不分配它。这是我正在使用的基本模型:

IfThen(Self.Owner.UpdateDate.IsNull,%s,FormatDateTime('dd/mm/yyyy hh:nn',StrToDateTime(%0:s)))

我可以同样地测试字符串%s是否为空-相同。上面的方法可以正常工作,直到它到达日期为null(因此%s为空)的第一条记录为止。之后,它将停止显示listview数据。我尝试了各种方式来指定“ true”值,例如”,“”,ToStr(%s)等。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:-1)

好的,我终于明白了。如果我直接使用该字段,则不必将%s转换为日期,而是可以使用。例如

IfThen(Self.Owner.UpdateDate.IsNull,%s,FormatDateTime('dd/mm/yyyy hh:nn',Self.Owner.UpdateDate.AsDateTime))

或者,或者:

IfThen(%s="",%0:s,FormatDateTime('dd/mm/yyyy hh:nn',Self.Owner.UpdateDate.AsDateTime))

对于那些有兴趣实际获得帮助的人,请忽略不赞成票-他们简直是错误的。以上两种方法都适用于WORK(Delphi 10.2.3)。请参阅下面的我的评论以获取更多详细信息。