2014-01-16 121 views
13

我已经编写了一个公式来基于在我的数据库中的字符串字段上运行的逻辑返回一个字符串。我有一切工作,除了我无法返回时,该字段是空字符串。在Crystal Reports中检查字符串是否为空的公式

这就是我需要:

... 
else if ({TABLE.FIELD} = "") then 
    "Fixed" 
... 

然而,这个条目显示在我的报告中的空字符串。我试过测试字段的长度为0和StrCmp函数。似乎没有任何工作。谷歌的结果表明,与“”或“”的简单比较应该使逻辑起作用。我是CR新手,所以也许我错过了一些东西。关于如何获得此功能的任何想法?

+0

'但是,这个条目在我的报告中显示为空字符串。什么是显示?从您的描述中不清楚。 – LittleBobbyTables

+0

正在打印/返回空字符串。所有其他字段显示正确的字符串(即固定)。 – user3203365

+0

自从我使用Crystal以来已经很久了,但是您确定它实际上是空的而不是'null'?如果我没有记错,Crystal在处理空值方面做得很差,而且必须先检查它们;检查该字符串是否为空作为第一次测试,并显示“固定”,看看是否清除了事情。 – LittleBobbyTables

回答

35

您可以检查IsNull情况。

If IsNull({TABLE.FIELD}) or {TABLE.FIELD} = "" then 
    // do something 
+4

虽然从答案中可以明显看出,但由于Crystal Reports对处理空值有挑剔,所以您希望检查“NULL”作为第一次检查。 – LittleBobbyTables

+0

在“/ /做什么”我想设置某些文本,但它总是返回假而不是文字 – numerah

+0

嗨LittleBobbyTables,我想给你两个大拇指! –

-1

如果ISNULL({TABLE.FIELD1})然后 “NULL” + '' + {TABLE.FIELD2} 别的 {TABLE.FIELD1} + '' + {TABLE.FIELD2}

这里我把NULL作为字符串来显示字符串值NULL,而不是数据字段中的空值。 希望你明白。