2015-07-20 100 views
3

在Crystal Reports中,是有可能有,如果if语句的计算结果为真,否则返回null返回数值的功能?水晶报表如果为true,则返回数否则返回NULL

我现在有

IF ({INDICATOR} = 'Y') Then 
(
    {numeric value} 
) 
Else 
(
    0 
); 

但由于0 {数值}的可能值,它没有任何意义。相反,如果指标不是'Y',我宁愿让该字段空白,但当我用NULL替换0时,它会给我一个类型不匹配错误。

有没有办法对我来说,只显示值时指示符“Y”?

回答

1

你不能在一个if声明中返回两个不同的数据类型。如果if是数字,那么其他的也应该是数字..而是尝试拆分语句并尝试..像下面的东西。

IF ({INDICATOR} = 'Y') Then 
    (
     ToText({numeric value}) 
    ) 

    Else if ({INDICATOR} <> 'Y') Then 
    (
     "" 
    ); 
+0

我无法返回NULL在第二个如果,我得到一个错误,指出“缺少)”。 是否有一些其他关键字为空或什么? – Nickknack

+0

检查我的编辑.... – Siva

+0

我试着昨天运行我的报告,它显示0.00而不是“”。 – Nickknack

5

如果你真的想有一个空值,而不是空的请尝试以下

创建一个名为NULL公式,然后将其保存并关闭,不会在公式区域输入任何数据。然后在公式中上述尝试

If {INDICATOR} = 'Y' then {numeric value} 
else tonumber({@NULL}) 
+0

如何将null转换为数字? – Siva

+0

它的工作原理..尝试 – CoSpringsGuy

+0

我已经使用这个解决方案之前和测试送我的回答:) – CoSpringsGuy

0
If {INDICATOR} = 'Y' then {numeric value} 
else {Command.NULLCOL} 

在数据库专家的设置是使用添加命令与SQL:

select null as nullcol 
from dual 

然后离开了加入到它。

返回的空值可以非常强大,所以你的空值需要不应该受到质疑。空值自动显示不同以突出显示。与0或“”相比,空值与DistinctCount函数正常工作。空值也可以与段摘要和交叉表正确工作,这可以为您节省大量的工作,这是使用水晶的全部要点。

相关问题