最近剛剛做完一個項目
使用到了RAVE進行報表設計
在使用中也查閱了很多資料
但總覺得網上的資料過於分散
而且都不是很全面
所以決定將如何在Delphi
中使用RAVE報表寫成幾篇文章
由於本人從小語文學得不好
不是寫作高手
這次也是第一次寫這樣的文章
希望看到這篇文章的網友能多提意見
歡迎大家指教
可以給我留言
言歸正傳在我們要給用戶編寫的軟件中往往需要生成各種各樣的報表報表是數據庫中數據的最終表現形式在Delphi 以前編寫報表都在使用Qusoft公司的Quick report而且在Delphi中集成了Quick report 在Borland Delphi; Studio 集成開發環境(IDE)的控件面板中取消了Quick report項取而代之以Nevrona公司Rave Reports項且在Tools中有Rave Designer
打開Rave Designer 我們可以如圖所示的一個報表設計界面開發人員可以開發出符合用戶要求的報表來而且這個報表的設計使用與Delphi集成開發環境幾乎是完全的一樣這可能是Rave與其它的報表組件最大的外觀上的不同
我在使用中下載了Rave Reports v你可以在http://wwwnevronacom/ 或者http://wwwdelphiboxcom/ 下載在寫這篇文章時http://wwwnevronacom/上已經發布了Rave Reports 不過文章還是以Rave Reports v為准打開Delphi可以控件面板看到如圖
Delphi
下的Rave
打開Tools中的Rave看到的報表設計界面如圖
Rave
的報表設計界面
一Rave的報表設計界面
首先介紹一下Rave的報表設計器的各組件和相關的屬性Rave Designer集成開發環境的界面包括標題欄菜單欄快捷工具欄組件欄和一些窗口
·標題欄顯示了當前的工程名位於最上部
·菜單欄一些功能可通過菜單欄的菜單命令實現
·快捷工具欄為位圖按鈕一些常用的菜單命令用這些按鈕實現
·報表組件欄分頁顯示各種組件(StandardReportZoomColorsLinesFillsFontsDrawingBar CodeAlignment)在利用Rave開發應用程序的過程中正確合理地使用組件非常重要用它可設計基於數據庫和文本的復雜報表
·左邊半部分像Delphi的object inspector工具可設置報表元件的屬性它的下部分有對應屬性的簡短提示
·正中部分為設計區域開發者可在上面添加各種設計元件如Drawing的橫線直線矩形橢圓Barcode中各種常用的條碼Standand 中的TextMemoSectionBitmapMetafile等等
·右邊為設計導航區可查看報表的各元件的更多信息如報表庫和數據顯示目錄設計時也可快速定位元件位置
二Rave的報表設計器組件欄的各組件
1Drawing (繪圖) 組件頁
Line component 畫線組件所畫的線較靈活 可以看到其屬性入圖有顏色線寬線行等屬性設計者根據需要更改屬性改變線的長短位置選中線條後選擇一個端點則光標會變為十子型拖動即可
Hline component 畫水平線組件
Vline component 畫垂直線組件
Rectangle component 畫長方形組件可以使用fill組件填充
Square component 畫正方形組件可以使用fill組件填充
Ellipse component 畫橢圓組件可以使用fill組件填充
Circle component 畫圓形組件可以使用fill組件填充
2Bar Code(條形碼)組件頁
PostNetBarCode 打印郵件標簽上包括 POSTNET 條碼
IofBarCode 打印 Interleaved of 條碼
CodeBarCode 打印standard and extended Code 條碼
CodeBarCode 打印 A B and C Code 條碼
UPCBarCode 打印 UPC條碼
EANBarCode 打印 EAN條碼
3Standard(標准)組件頁
Text 這個組件是在報表上固定的文字例如報表的標題等可以設置字體的大小顏色Rotation屬性可以使要顯示的字為任意角度
Memo Memo組件提供了多行文本的文字與delphi中的相似屬性很多但我們應用的不多可以使用text屬性添加文本
Section 這個組件是其他組件的容器將其他組件固定在此組件中
Bitmap 這個組件是在報表中放置bmp文件 (*bmp) FileLink屬性連接bmp文件
MetaFile 這個組件在報表中放置meta文件 (*wmf)FileLink屬性連接meta文件
FontMaster 這個組件控制報表中的任何的text字的屬性在要使用該字體的text組件或memo組件的fontmirrot屬性選擇FontMaster
PageNumInit :報表顯示頁碼的初始頁碼如圖的InitValue的值為則報表的初始頁為頁碼從5開始
4Report(報表)組件頁
如果報表需要的是數據庫的數據則這個組件頁中的組件使用比較頻繁
DataText用來顯示數據庫中內容比較短的信息要用它顯示相應的數據庫字段信息則要使用到DataField 和DataView兩個屬性用來連接數據庫和字段DataText用來設計主從報表時LookupDataView是相應的數據連接LookupDisplay是顯示內容LookupField是主報表相應的數字段進行關聯的字段的內容也就是主數據字段進行連接的字段LookupInvalid是控制相應錯誤產生後的情況
DataMemo在Memo的基礎上支持了數據庫的字段顯示 使用DataField 和DataView兩個屬性用來連接數據庫和字段除了輸出相應的文本內容外還可以輸出RTF格式顯示RTF格式需要設置ContainsRTF屬性為True
CalcTex這個組件用來統計報表字段的最大值最小值總和統計值等內容直接使用只需要通過CalcType屬性來設置CalcType屬性包括了ctAverage(求平均值)CtCount(求個數)ctMax(求最大值)ctMin(求最小值)ctSum(求累加和)
DataMirror Section和Section組件相似
Region如果要進行報表的打印Region組件規定了打印區域可以設置Columns來分欄
Band這個組件算是一個容器組件包括textMemo組件等包括的是非數據庫庫信息Band組件要放置在Region中選擇BandStyle屬性後出現如下圖的屬性對話框左邊為報表中Band的列表右面的PrintLocation包括Body Header(頁眉)Group Header(組眉) Row Header(行眉)Detail(表體)Row Footer(行腳)Group Footer(組腳) 和Body Footer(頁腳)BandStyle屬性可以多選Print Occurrence屬性包括 First(首頁打印)New Page(打印新一頁)New Column(新分欄)選擇First(首頁打印)也就是Band包括的內容只在第一頁打印選擇New Page(打印新一頁)Band包括的內容必須在新的一頁打印選擇New Column(新分欄)Band包括的內容必須在新的分欄中打印
DesignerHide屬性當一個報表有多個Band時選擇查找Band變得比較麻煩設置DesignerHide屬性為True時沒有選擇到的Band內容被隱藏
GroupDataView 和GroupKey屬性如果想要以相應的數據結果作為報表分組的依據那麼就必須設置這兩個屬性GroupDataView是相應的數據源GroupKey是數據源的索引分組是靠GroupKey中的值進行分組的
DataBand是直接作用於數據庫且可以在其中擺放相應數據庫報表組件這樣通過它就可以讓相應的報表具有數據庫書庫打印功能其中DataView屬性是設置相應的數據源GroupDataView是相應的報表中的分組數據源
DataCycle與DataBand相似的地方在於循環的顯示數據DataBand是數據庫內容的循環打印而DataCycle不需要使用Region它打印的區域為頁面每頁只能打印一個組件設計好的內容使用DataBand是根據Region的范圍來分頁而DataCycle則是每一頁只現實一條信息根據數據的多少分頁
CalcOp該組件提供了報表相應的計算功能具體的使用會在以後講解
CalcTotal與CalcOp結合使用來完成日常報表的統計功能
5Zoom(縮放)組件在設計報表時放大縮小報表頁面
6Colors(顏色)組件對選擇的對象快速的設置顏色
7Lines(線型)組件對於選擇的線更改其線型
8Fills (填充)組件對於正方形等圖形填充樣式
9Fonts(字體)組件進行字體的設置
10Alignment(隊列)組件調整對齊組件和組建的層次
From:http://tw.wingwit.com/Article/program/Delphi/201311/24824.html