Crystal Reports Designer  

多重運算式 (Crystal 語法)

一般而言,每一個運算式使用一行,但是如果需要更多空間時,可以使用下一行。

以下公式包含五個運算式。因為公式中最後一個運算式的值是 25,因此會傳回數值 25。

範例

//Expressions example
//The first expression. Its value is the Number
//value 30
10 + 20;
//The second expression. Its value is the String
//"Hello World". It takes up two lines.
"Hello " +
"World";
//The third expression. Its value is of Number type
{Orders Detail.Quantity} * 2 - 5;
//The fourth expression. Its value is of String type
If {Orders Detail.Quantity} > 1 Then
   "multiple units"
Else
   "one unit";
//The fifth and final expression. Its value is the
//Number value 25
20 + 5

您可以在最後一個運算式之後加上分號,也可以不加。例如,上述公式也可以如此結尾:

20 + 5;

運算式一節中有些範例公式並沒有分號。其原因在於它們都只包含單一運算式,而在最後一個運算式之後的分號是選擇性的。Crystal 語法中許多公式都可以寫成單一運算式。

請注意,在「多重單位」字串之後並沒有分號。事實上,假如您在此加上一個分號,程式反而會出現錯誤,因為分號會將運算式分開,而

Else
   "one unit";

並不是一個獨立的運算式,它不能與 If 分開單獨使用。事實上,它是 If 運算式的一部份,因為它敘述了 If 運算式在某些狀況下將會傳回的值。

注意   本範例不是一個實際的例子,因為公式中的前四個運算式對最後一個運算式並沒有任何影響。

前面的運算式將如何影響後面的運算式

在 Crystal 語法中有一個最重要的觀念,就是 Crystal 語法公式是一連串的運算式,公式的結果就是最後一個運算式的值。這種以運算式為基礎的語法,使得您可以用簡短的公式撰寫出許多功能。

範例

//First expression. It declares the Number variable x
//and then returns the value of an uninitialized
//Number variable, which is 0.
NumberVar x;
//Second expression. It assigns the value of 30 to x,
//and returns 30.
x := 30

如果省略第一個運算式,以上的公式就會出現錯誤,其原因在於第二個運算式參考到數值變數 x,而程式在解析運算式之前,必須先宣告相關的 x。

通常,您會使用變數,用公式中較早的運算式來影響最後的運算式。請參閱變數

請參閱

If 運算式