Crystal reports 在crystal report formula字段中永远不会执行Else部分

Crystal reports 在crystal report formula字段中永远不会执行Else部分,crystal-reports,Crystal Reports,我有一个水晶语法的简单公式,看起来像这样: if isdate(totext({Absence Details.Return to Work Interview Date})) = true and {Absence Details.Return to Work Interview required} = true then 1 else 0; 这是公式的实际代码 但else部分永远不会执行,当条件不为true时,报告只显示为空白。我不确定我在这里做错了什么 提前谢谢。 -

我有一个水晶语法的简单公式,看起来像这样:

if isdate(totext({Absence Details.Return to Work Interview Date})) = true
  and {Absence Details.Return to Work Interview required} = true then
    1
else
    0;
这是公式的实际代码

但else部分永远不会执行,当条件不为true时,报告只显示为空白。我不确定我在这里做错了什么

提前谢谢。
-Amit

编辑:NM,代码已发布到评论中。看起来这不是问题所在

我的猜测是,假设您调试正确,您在不应该使用分号的地方使用了分号

if {something} = x then
   do something;
else
   do something different;
而不是

if {something} = x then
   do something
else
   do something different;

这将导致这种行为,假设它不会被孤立的else子句阻塞。但正如评论所说,除了发布真实代码,我们只能猜测到底发生了什么。它可以很简单,因为您的评估总是正确的。

0
更改为
7
,然后查看它是否实际打印
7
。一些报告生成工具(我对Crystal几乎没有经验,但对其他工具有很多经验)如果字段为零,则会将字段留空-这通常有助于减少不必要的混乱,从而有助于阅读报告

如果打印出
7
,那么这就是问题所在,问题在于如何让Crystal输出实际的0

这可能是一个配置输出字段的问题,甚至是将其设置为文本的
“0”
,而不是数字的
0


当然,如果没有打印出
7
,请随时告诉我。

也许您的字段中有一些空值-在这种情况下,crystal只返回空值。然后,您需要为报告设置“将空值转换为默认值”或针对空值进行显式测试。

这不是“谁想成为百万富翁”。发布实际代码!:-)如果isdate(totext({缺勤详细信息.返回工作面试日期}))=true和{缺勤详细信息.返回工作面试要求}=true,则1或0这是实际代码。