水晶報表公式欄位使用樣本和公式欄位文法【深海原創】

來源:互聯網
上載者:User

一.公式欄位使用樣本:

A.計量單位轉換 
    這是一個非常簡單的例子,主要是為了示範在公式中進行不同變數類型的轉換和計算。
    有時資料庫欄位的單位和報表中顯示的單位不同,我們需要進行計量單位之間的轉換,這時就離不開公式的使用。比如,我們的資料庫中有一個Length欄位,它記錄以米為單位的長度,而在列印時需要以厘米為單位,我們就可以使用下面的函數。
ToText({Order Details.Length} *100) + "厘米"
    這裡的ToText函數就是轉換數字型為字元型。常用的轉換函式還有ToNumber等。

B.中文星期
    在這個例子中我們將示範如何進行字串操作。
    我們在列印報表時經常會遇到顯示中文星期的問題。Crystal Reports有DateOfWeek函數可以判斷一個日期是星期幾,比如DateOfWeek返回4時表示星期三。我們可以使用下面的公式來顯示中文星期。這裡的Today函數只是一個樣本,你可以將其修改為你所需的日期函數或欄位。
StringVar x;
NumberVar n;
x:="日一二三四五六";
n:=DayOfWeek (Today);
x:="星期"+x[2*n-1 to 2*n]
    前兩行,我們定義了字串變數x和數字變數n。一個公式可以有很多行,但只有最後一行的計算結果才會作為整個公式的結果列印在報表中。

C.條件計算
    在這個例子中我們重點示範如何使用If-Then-Else操作符。
    條件計算在報表中使用得非常普遍。例如,我們要根據使用者購買的總價格決定折扣的多少。我們假定使用者購買200元以下的產品,不打折;200元到1000元提供5%的折扣;1000元以上提供7%的折扣。我們可以使用下面的公式計算終端使用者需要付多少錢。
CurrencyVar cValue;
cValue := {Order Details.UnitPrice} *{Order Details.Quantity}; //計算總價格
If cValue < 200 Then
 cValue
Else If cValue < 1000 Then
 cValue * 0.95
Else
 cValue * 0.93

D.條件統計
    Crystal Reports提供了一些基本的統計功能,可以按分組進行統計。但是實際應用中的統計往往更為複雜。比如,我們需要根據一定的條件進行統計。假定我們要統計每組中單價超過10元的商品的銷售數量。我們可以先在報表的Detail部分插入一個公式。假定該公式名字為ConditionSum,在公式內輸入如下內容:
If {Order Details.UnitPrice} < 10 Then
 0
Else
 {Order Details.Quantity}

二.公式欄位文法:

公式欄位的文法比較簡單,但支援的操作符和函數非常多。在公式中可以使用變數、常量。也可以引用資料庫欄位,其格式為:{庫名.欄位名}
A.操作符
  水晶報表支援大量的操作符,有些是常見的,也有些是Crystal Reports特有的。

B.算術操作符
  水晶報表支援+、-、*、/,還支援%(百分比)操作符,如100 % 500 = 20。

C.轉換操作符
  轉換操作符為$,它將數字轉換為貨幣型,這樣水晶報表會按照報表中的貨幣格式設定列印資料。

D.比較操作符
  水晶報表支援的比較操作符與Visual Basic相同:=、<>、<、>、>=、<=。

E.字串操作符
  字串串連的操作符為“+”。
    從字串中取指定的字元使用“[]”操作符,相當於Visual Basic的Mid函數。“[]”內為字元的位置,第一個字元的編號為1。如:{file.ItemNumber} [4 to 5]
    判斷一個字串是否包括在另一個字串使用in操作符。比如:"c" in "pcc"返回True。

F.範圍操作符
     水晶報表允許使用者建立一個範圍,並判斷資料是否包括在指定範圍內。如“100.00 to 250.00”包括100到250之間的資料,而使用“50 in (100 to 250)”可以判斷50是否在指定的範圍內。

G.布爾操作符
  布爾操作符包括And、Not和Or。

H.數組操作符
  水晶報表支援數組,比如[100,200,300,400]是一個由4個元素組成的數組。可以使用in操作符判定資料是否是一個數組的元素,如:{file.State} in ["CA", "HI", "AK"]。

I.匹配操作符
  匹配操作符包括StartsWith和Like。StartsWith判斷一個字串是否以指定的字串開頭,如"PCC" startwith "P"返回True。Like操作符的用法類似Visual Basic,也是將字串運算式和萬用字元運算式中的樣式做比較。

J.其他動作符
    另一個重要的操作符是If…Then … Else …,就是我們所熟悉的條件判斷,在我們後面得樣本部分可以看到這個操作符的威力。
    如果要為變數賦值,需要使用“:=”符號,這是與Visual Basic不同的。
    在公式中也可以加上注釋以方便閱讀。注釋符號為“//”,“//”符號後面的內容將被忽略。
    公式中也可以包括多個語句行,行尾使用“;”分割。

K.函數
  水晶報表支援大量函數,包括數學函數、統計函數、日期函數、字串函數、數組函數等等。在水晶報表的協助檔案對每個函數都有詳細的介紹。

備忘:部分參考有藍色深海匯總和修改!部分是項目實戰經驗!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.