Crystal Reports for Eclipse Designer Guide

Evaluation time

Formulas are not evaluated "on demand" or called (that is, one formula cannot call another formula to do some processing, even through the use of global variables).
For example:
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
Using formula PrintSquare in a report, you get:
The square of 5 is 0.
In this example, formula PrintSquare uses formula Square, so Crystal Reports orders the evaluations. First Square is evaluated and then PrintSquare is evaluated. When Square is evaluated, the value of the global variable x is 0, since that is the value of an uninitialized Number variable.
In contrast, custom functions are evaluated on demand, or called. Using a custom function in the previous example:
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
Now if you use formula PrintSquare in your report, you'll get:
The square of 5 is 25.



SAP BusinessObjects
http://www.sap.com/sapbusinessobjects/
Support services
http://service.sap.com/bosap-support/
Product Documentation on the Web
http://help.sap.com/