水晶报表的统计功能-Crystal Report Sub total Per Page
先大概表述下我對水晶報表的理解:
大體上Crystal Report 可以理解為3部分:
第一部分:數(shù)據(jù)引擎
???? Crystal Report 集成了各種數(shù)據(jù)訪問接口,可以方便的從數(shù)據(jù)倉庫中提取數(shù)據(jù),并把返回的數(shù)據(jù)做為一個數(shù)據(jù)集。
第二部分:處理邏輯
?????Crystal Report 提供了處理邏輯,可以很方便的讓我們針對數(shù)據(jù)在展現(xiàn)前,進行一些前期的處理。這些處理邏輯,
除了可以按照自己的語法來寫,也可以用VB。
第三部分:UI展示
?????數(shù)據(jù)經(jīng)過處理后,提供了各種UI層面的展示,包括數(shù)據(jù)相關(guān),計算相關(guān),運行時相關(guān),頁面相關(guān),時間相關(guān)等等。
?
接下來是整個數(shù)據(jù)的流程:
?????CP可以通過不同的數(shù)據(jù)訪問接口來讀取數(shù)據(jù),并且支持參數(shù),參數(shù)的語法:{?參數(shù)名}。當(dāng)取到數(shù)據(jù)之后,可以根據(jù)
需要,在處理邏輯里邊添加處理邏輯,比如統(tǒng)計,比如計數(shù)等等。然后數(shù)據(jù)可以在UI部分展示。數(shù)據(jù)展示可以這么來理解,
針對cp頁上的不同部分依次讀取數(shù)據(jù)集,對于Report Header/Footer要求的數(shù)據(jù),只給一次。 而Page Header/Footer
?部分的數(shù)據(jù),會根據(jù)記錄的多少,如果超過頁容量,則會在多頁填充。Page Detail 里邊的數(shù)據(jù),則是循環(huán)讀取數(shù)據(jù)集的
每一條數(shù)據(jù),如果有對應(yīng)的數(shù)據(jù)請求,則發(fā)放對應(yīng)的數(shù)據(jù)。
?
常用的統(tǒng)計:
SUM(field)sum可以統(tǒng)計總和,而且里邊只能是字段,不能是變量。當(dāng)統(tǒng)計字段被放在page 部分時,統(tǒng)計結(jié)果會統(tǒng)計當(dāng)
前頁及以前所有頁的統(tǒng)計結(jié)果,而非全部。只有統(tǒng)計字段放在Rrport 部分的時候才可以顯示全部統(tǒng)計結(jié)果。例如:
定義: @total=SUM(command.orderTotal);
當(dāng)放在page section中的時候,顯示的是當(dāng)前頁訂單前所有訂單統(tǒng)計,只有放Report Section,才顯示是所有訂單統(tǒng)計。
?
而如何針對頁面的一個統(tǒng)計呢?就是針對每一頁一個統(tǒng)計出來呢?需要如下做法:
定義如下計算字段:
Formula 1 : @Reset
NumberVar x;
WhilePrintingRecords;
x:=0;
Formula 2 : @Sum
NumberVar x;
WhilePrintingRecords;
x:=x+{DatabaseFiled};
Formula 3 : @Display
NumberVar x;
WhilePrintingRecords;
x
把Formula1 放在Page Header中,更改屬性,選中Suppress(不知道中文怎么翻譯)
把 Formula2 放在Page Detail 中,更改屬性,選中Suppress
把 Formula3?放在Page Footer中,這個就是
轉(zhuǎn)載于:https://www.cnblogs.com/neilvension/archive/2009/04/02/1428365.html
總結(jié)
以上是生活随笔為你收集整理的水晶报表的统计功能-Crystal Report Sub total Per Page的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抛妇产多少钱啊?
- 下一篇: myeclipse5.5注册码