web-dev-qa-db-ja.com

CrystalReportsのカスタムIsNull関数

CrystalReportsでカスタムIsNull関数を作成しようとしています。この関数は、MS SQLServerのIsNull関数と同じように機能する必要があります。フィールドを指定したいのですが、フィールドがnullの場合は、指定した値で返される必要があります。

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

数値フィールド用に別の関数を作成し、テキストフィールド用に別の関数を作成する必要があることに気付きました。また、Crystalでは、カスタム関数内での標準関数の使用が許可されていないこともわかりました。たとえば、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

Crystalでこのような関数を作成し、カスタム関数内のISNULLを回避する方法を知っている人はいますか?

5
XCom69

Null値をカスタム関数に渡すことはできないため、クリスタルのisnull関数をカスタム関数内で使用するのは無意味です。唯一のオプションは次のように書くことです...

if isnull({myField}) then 0 else {myField}
11
dotjoe

この問題を見つけました。数式エディタで、ヘッダーに次のことを示すドロップダウンがあります。

  • ヌルの例外
  • Nullのデフォルト値

2番目のものを選択します(nullのデフォルト値)

10
user3558031

私は同じ振る舞いに遭遇しましたが、これについての文書化された理由はまだわかりません。

SQL式を使用することをお勧めします。

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

これは私のために働いた:

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