在公式中使用變數之前,必須先進行宣告。變數可以保留指定型別的資料值。允許的資料型別包括七種簡單型別 (數值、貨幣、字串、布林、日期、時間和日期時間) 及六種範圍型別 (數值範圍、貨幣範圍、字串範圍、日期範圍、時間範圍及日期時間範圍) 以及之前提到可以保留陣列的資料型別。所以變數一共可以使用 26 種不同的資料型別。
當您宣告變數時,必須先為其指定一個名稱。變數名稱不可以和任何函式、運算子或其他 Crystal 語法的關鍵字相同。例如,變數名稱不可以取為 Sin、Mod 或 If,因為 Sin 是內建函式,Mod 是內建運算子,而 If 是內建關鍵字。在公式編輯器中輸入公式時,內建函式、運算子及其他關鍵字的名稱都會以不同的色彩顯示,所以,如果變數名稱發生衝突時,很容易就可以辨認出來。
變數宣告完之後,就可以在公式中使用。例如,您也許想要為它指派起始值:
Local NumberVar x; //Declare x to be a Number variable x := 10; //Assign the value of 10 to x
注意 宣告數值變數時所使用的關鍵字結尾有一個 Var,這適用於 Crystal 語法中所有的變數型別。
變數只能儲存一種型別的值,例如,假如變數儲存的是數值,之後就不可以用來儲存字串。
範例
Local StringVar y; y := "hello"; //OK- the Length function expects a String argument Length (y); //Error- y can only hold String values y := #Jan 5, 1993#; //Error- y can only hold String values y := ["a", "bb", "ccc"]; //Error- the Sin function expects a Number argument Sin (y);
您可以將宣告變數和指定變數值合併成一個運算式,例如:
Local NumberVar x := 10 + 20; Local StringVar y := "Hello" + " " + "World"; Local DateVar z := CDate (#Sept 20, 1999#); Local NumberVar Range gradeA := 90 To 100;
這是一個很好的範例,因為這種作法更有效率,而且可避免指定錯誤起始值這類的常見錯誤。
以下就是宣告變數及指定範圍變數起始值的範例:
Local NumberVar Range gradeA; Local DateVar Range quarter; gradeA := 90 To 100; quarter := CDate (1999, 10, 1) To CDate (1999, 12, 31);