2012-08-13 60 views
4

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

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

我遇到过,我必须为数字字段和文本字段的单独函数创建一个单独的函数。我还发现,水晶不允许使用的标准功能的自定义函数里面,比如ISNULL功能:

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

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

有谁知道我怎么能创造这样一个功能这在水晶和一个自定义函数里面的ISNULL工作?

回答

2

我遇到过相同的行为,但我还没有看到有关此情况的文档化原因。

我会建议你使用SQL表达式:

//{%myField} 
(
    ISNULL({myField},'Hello World') 
) 
10

你不能传递一个空值到一个自定义的功能,所以它是没有意义的里面使用一种晶体的isnull功能。唯一的选择就是把它写像...

if isnull({myField}) then 0 else {myField} 
7

我发现了这个问题,在公式编辑器有一个下拉的头表示:

  • 空值
  • 默认例外空值

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

 

1

这为我工作:

if (isnull({dbvalue}) or ({dbvalue} ='')) then 
     "Display the required text" 
else 
     {dbvalue}