5

我正在尝试在 Crystal Reports 中创建自定义 IsNull 函数;该函数的行为方式必须与 MS SQL Server 中的 IsNull 函数相同。我想指定一个字段,如果该字段为空,那么它必须返回一个我指定的值。

IsNull({myField},0) or
IsNull({myField},'Hello World') 

我遇到过我必须为数字字段创建一个单独的函数,为文本字段创建一个单独的函数。我还发现 Crystal 不允许在自定义函数中使用标准函数,例如ISNULLFunction:

Function(NumberVar param, Numbervar setter)
IF ISNULL(param) THEN setter ELSE param

Function(StringVar param, StringVar setter)
IF param = NULL THEN setter ELSE param

有谁知道我如何在 Crystal 中创建这样的函数并为ISNULL自定义函数内部解决问题?

4

4 回答 4

11

您不能将空值传递给自定义函数,因此isnull在其中使用水晶的函数是没有意义的。唯一的选择是写成...

if isnull({myField}) then 0 else {myField}
于 2012-08-13T14:26:18.437 回答
11

我发现了这个问题,在公式编辑器中,标题中有一个下拉菜单,指示:

  • 空值例外
  • 空值的默认值

选择第二个(空值的默认值)

 

于 2014-04-21T20:56:59.297 回答
2

我遇到了同样的行为,但我还没有看到有据可查的原因。

我建议您使用 SQL 表达式:

//{%myField}
(
  ISNULL({myField},'Hello World') 
)
于 2012-08-13T14:21:03.457 回答
1

这对我有用:

if  (isnull({dbvalue}) or ({dbvalue} ='')) then 
       "Display the required text"
else
       {dbvalue}
于 2016-01-30T00:05:53.330 回答