Crystal Reports Designer  

Basic 語法基礎觀念

熟悉的功能

公式的結果

公式的結果,或是將公式放在報表中時所列印出來的值稱為公式傳回值。在 Crystal Reports 中的每一個公式都必須傳回值。Basic 語法藉由設定 Formula 特殊變數的值來傳回值。例如,以下是簡單的 Basic 語法公式,會傳回數值 10:

formula = 10

由公式所傳回的數值可以是以下七種簡單資料型別中的一種:數字、貨幣、字串、布林、日期、時間和日期時間。Crystal Reports 也支援範圍型別及陣列型別,但是公式無法傳回這些型別的值。

必須為 Formula 變數指派數值

如果沒有為 Formula 變數指派數值,則 Basic 語法公式不完整。

有時候您可能只想寫一個公式來宣告或初始化全域變數。這種公式常會插入報表的報表首區段。如果是這種情形,可將任何數值指派給 formula 特殊變數。每個公式都必須傳回一個數值,就算您不想使用該數值也是一樣。

範例

Rem Some Global variable declarations
Rem Remember to set the value of 'formula'
Global x As String, y As Number, z As DateTime
x = "hello"
y = 10.5
z = #Aug 6, 1976#
formula = 10

資料型別和公式變數

在同一公式內,可以多次設定 formula 變數。例如,假設某公司的出貨原則是當訂單金額超過 1000 元時就予以保險,低於此金額的訂單則不予保險。

Rem A formula that returns a String value
If {Orders.Order Amount} >= 1000 Then
   formula = "Insured shipping"
Else
   formula = "Regular shipping"
End If

以上的公式在資料庫欄位 {Orders.Order Amount} 的數值大於或等於 1000 時,會傳回文字字串值「已投保出貨」;否則會傳回文字字串值「一般出貨」。請注意在上述範例中,公式變數出現了兩次。

如果公式變數已設定為某種型別值,之後就無法在相同的公式中將其再設定為另一種型別值。例如,如果將上述範例中的字串「一般出貨」替換成數字 10,就會發生錯誤,這是因為已經先將特殊變數公式設定成字串值「已投保出貨」了。

存在這個限制的原因是 Crystal Reports 需要事先知道公式的傳回型別,才能為傳回的數值配置足夠的儲存區。這是因為不同型別的儲存區需求不盡相同。另一個原因是公式欄位可用的格式化選項,會依其型別的不同而變化。例如,數字欄位有數字的格式化選項,例如顯示的小數位數。這並不適用於字串欄位。

注意   特殊變數 formula 是無法宣告的,這與其他 Basic 語法公式中所使用的變數不同。

區分大小寫

Basic 語法不區分大小寫。這代表 formula、Formula 和 FORMULA 都會視為相同。這適用於所有 Basic 語法公式中的變數名稱、函式和關鍵字。

注意   本規則的唯一例外是字串。字串 Hello 與字串 hello 並不相同。

練習使用 Xtreme 範例資料庫

本節中的許多範例都參考 Xtreme 範例資料庫,此資料庫可從 Java 開發人員區域下載。若要下載 Xtreme 範例資料庫,請到 http://www.businessobjects.com/products/dev_zone/java/default.asp

請參閱

比較 Basic 語法公式和 Visual Basic 中的函式 | 變數