我有一个要求,根据所选参数,表字段应显示为文本或日期。例如,如果用户选择true,则作为日期时间类型的OriginDate字段应显示为报告中的日期,否则应显示为文本。我尝试创建一个类似下面的公式,然后将公式放在报告的详细信息部分,但由于返回的数据类型不同,它不起作用。
if {?Mailmerge}=true then
ToText({Travel.OriginDatetime}, "M/d/yy")
else
{Travel.OriginDatetime}
有没有办法可以让我满足上述要求,这样我最终不会创建2个报告,其中字段显示为文本,其他字段显示为日期?
答案 0 :(得分:3)
尝试创建一个公式,将字段作为字符串totext({Travel.OriginDateTime},"M/d/yy")
返回,并将其覆盖原始字段{Travel.OriginDateTime}
,并根据{?MailMerge}
的值有条件地抑制它们,这样只有一个显示在报告的任何一个实例中。
答案 1 :(得分: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
参数格式化日期的指南。