0

我有一个要求,根据选择的参数,表格字段应显示为文本或日期。例如,如果用户选择 true,则作为日期时间类型的 OriginDate 字段应显示为报告中的日期,否则应显示为文本。我尝试创建一个公式并执行如下操作,然后将公式放在报告的详细信息部分,但由于返回的数据类型不同,它不起作用。

if {?Mailmerge}=true then
ToText({Travel.OriginDatetime}, "M/d/yy")
else
{Travel.OriginDatetime}

有没有一种方法可以满足上述要求,这样我就不会最终创建 2 个报告,其中一个字段显示为文本,另一个显示为日期?

4

2 回答 2

3

尝试创建一个公式,将您的字段作为字符串返回,并将totext({Travel.OriginDateTime},"M/d/yy")其与原始字段重叠,{Travel.OriginDateTime}并根据值有条件地抑制它们,{?MailMerge}以便在报告的任何一个实例中只显示一个。

于 2012-08-30T18:50:53.467 回答
1

如果我关注你,你只想显示M/d/yy何时?MailMerge为真,否则你想显示完整日期?

您不能在同一个公式中显示不同的数据类型,因此只需将条件语句的两个部分都转换为字符串:

if {?Mailmerge}=true then
ToText({Travel.OriginDatetime}, "M/d/yy")  // 8/30/12
else
ToText({Travel.OriginDatetime}, "M/d/yy hh:mm:ss")  // 8/30/12 02:06:00

我不知道您的日期在数据库中到底是什么样的,但您可以使用以上内容作为根据?MailMerge参数格式化日期的指南。

于 2012-08-30T18:06:16.690 回答