Crystal Reports for Rational Application Developer ガイド

評価時期

式は、必要時点での評価、つまり呼び出しが行われるわけではありません。そのため、たとえグローバル変数を使用しても、ある式から別の式を呼び出して特定の処理を行わせることはできません。
以下はその例です。
Rem Formula PrintSquare
Global x As Number
x = 5
formula = "The square of " & CStr(x,0) & " is " &
ToText ({@square, 0) & "."

Rem Formula Square
Global x As Number
formula = x * x
レポートで PrintSquare 式を使用すると、次のように出力されます。
The square of 5 is 0.
この例では、PrintSquare 式が Square 式を使用します。そのため、Crystal Reports が式の評価順序を決めます。まず、Square を評価し、次に PrintSquare を評価します。Square が評価されるとき、グローバル変数 x の値は 0 です。これは、初期化されていない数値型変数の値が 0 であるためです。
対照的に、カスタム関数は、必要時点での評価、つまり呼び出しが行われます。前の例でカスタム関数を使用すると、次のようになります。
Rem Formula PrintSquare
formula = "The square of " & CStr (5,0) & " is " &
CStr(cf9Square (5),0) + "."

Rem Custom Function cf9Square
Function cf9Square (x As Number)
cf9Square = x * x
End Function
今度は、レポートで PrintSquare 式を使用すると、次のように出力されます。
The square of 5 is 25.



Business Objects, an SAP company
http://japan.businessobjects.com/
サポート サービス
http://japan.businessobjects.com/support/
Web 上の製品マニュアル
http://support.businessobjects.com/documentation/