QuickReport基本知識 (轉)
以下是各控制元件最簡單的使用功能,其他功能依具體的實現而介紹。
TquickRep:帶有座標,作為其他報表控制元件(如TQRBand)的容器,它的Band屬性可以自動新增各種型別的TQRBand.
TQRLabel:列印靜態的文字(即不是根據值來改變的),作用象Tlabel , Caption的內容就列印出來的內容。
TQRText:列印資料庫欄位值,一個值一行。作用象TDBText.把它的DataSet , DataField分別賦予Table1,Company時,將列印Table1所指向的表的Company欄位的內容。
TQRSysData:列印資訊如時間,頁碼,報表頭等。
TQRMemo:非常象TQRLabel,只是它可以列印多行,也是列印靜態資料。
TQRRichText:列印RichText格式,能夠連線到一個Form上的RichEdit控制元件並列印它的內容,不過必須是32位版本的。
TQRShape:列印方框、圓和垂直、水平線。
TQRImage:列印靜態的圖片,包括(BMP,WMF,ICON).
TQRDBImage:從資料庫接收圖片。
TQRBand:用來確定報表的不同位置應該顯示什麼內容,它上面可以放控制元件(參見二)。
TQRGoups:Groups可以不限級別的組操作。當你連線了幾個datasets到報表時可以透過Groups成組的對dataset進行操作。
二、 報表的控制元件擺放循序
出現在所有頁上的標題(PageHeader)
標題(只有首頁才有)(Title)
所有列的標題(ColumnHeader)
記錄的內容,一個欄位一列(Detail)
摘要(最後一頁才有)(Summary)
出現在所有頁上的頁尾(PageFooter)
這些根據設定不同的Band(不是控制元件,一種型別而已,在其上面可以放其他控制元件)來定位。總共有六種Band。
三、 一個簡單的例子
這個例子製作列印一張表的部分欄位名及該欄位資料內容的報表。
建立一個新project
放一個TTable到Form上,DatabaseName設為BCDEMOS,TableName指向Customer表,Active設為true.
放一個TquickRep控制元件在Form上,DataSet屬性為Table1.(即要顯示上邊Table1所指向的表的內)。
展開TquickRep的Bands屬性,設HasDetail為true,這時自動增加個detail band(一個TQRBand控制元件,故也可以直接放一個TQRBand控制元件,BandType屬性設為detail就行了)。
放一個TQRDBText控制元件在detail band上面,設DataSet指向Table1,DataField指向Company。第四步是設定在報表的什麼位置顯示什麼型別的資料,而TQRDBText則具體實現。
選TquickRep控制元件,按右鍵,選擇”Preview”預覽,應該看到表Customer的欄位Company的所有欄位值。
到這一個簡單的例子就OK了,實現預覽及利用TQRuickRep自帶的列印功能只須在Form中加一個按鈕,它的OnClick事件為:QuickRep1->Preview();
四、一個使用TQRGoups、TQRExpr控制元件的報表
該報表先列出州名,接著列出該州的所有公司及公司總數,一個州列完後空一行(groups中斷),列出新的州名,接著列新州下的所有公司,沒有填州名的公司統一列在Unknown state下面。
建立一個新project。
放一個Tquery在Tquickrep上,其屬性為: * from customer order by State,Company;(即根據州、公司排序),DatabaseName為BCDMome,Active為true.
放一個TquickRep控制元件在Form1上,DataSet為Tquery1.
放一個TQRGroups控制元件在TquickRep上,這時預設為group header。(任何時候當group中斷或更高階別的group中斷,這個header都將列印出來,如果有,根據表示式的值顯示內容。)接著新增一個group footer band,新增時,放一個TQRBand控制元件在報表上,連線TQRGroups的FooterBand屬性到這個QRBand,這時這個新建的TQRBand就成為Group Footer. (TQRGroup的一個重要特性是表示式,任何時候當表示式的值變時Group都將中斷,如表示式是按省列出城市名,當前列出廣東省,當屬於該省的城市列完後,表示式值改變,這時Group中斷,接著顯示其他省的城市名。)TQRGroups的Expression屬性設為Query1.State(根據不同的州來中斷)。
放一個TQRBand控制元件在報表上,BandType為rbDetail.
放一個TQRExpr控制元件在group header上面,其Expression屬性為:if(State<>’’,State,’Unknown state’),即如果公司的州沒填,就歸入Unknown state,否則歸入State.
放三個TQRDBText在Detail上,他們的DataSet都指向Query1,DataField分別指向Company,Contact,Phone.
在放一個TQRExpr控制元件在group Footer上面,Expression為’Customers in’+State+’:’+Str(Count) 作用是在每個州的公司列完後顯示該州總共有多少個公司。
按右鍵選預覽,應該看到不同的州名及其公司和公司公司總數。
五、QuickReport 條件式列印
可以直接在 TQuickReport 的 OnFilter 事件中寫明條件判斷,OnFilter事件的引數中有一個以 var 宣告的 PrintRecord 布林型態變數,將這個變數設為 True(預設值), 該筆記錄便會印出;反之, 設為False,就不印出這筆記錄.
begin
PrintRecord := False;
if YourTable.FieldByName('WantedField').AsInteger <= 100 then
Exit;
if YourTable.FieldByName('WantedField').AsInteger >= 150 then
Exit;
PrintRecord := True;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992702/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 基本知識(轉)Oracle
- JavaScript 物件的基本知識(轉)JavaScript物件
- 全面質量管理基本知識(轉載)
- js 基本知識JS
- javaweb基本知識JavaWeb
- shell基本知識
- ldap基本知識LDA
- Thymeleaf基本知識
- Ajax基本知識
- NBU基本知識
- WiFi基本知識WiFi
- ORACLE基本知識Oracle
- git基本知識Git
- 1、基本知識
- DAX 基本知識
- Uboot基本知識boot
- Oracle入門基本知識一點通(轉)Oracle
- Linux使用基本知識:CORE檔案(轉)Linux
- Vagrant (一) - 基本知識
- 影像的基本知識
- 基本網路知識
- SYBASE IQ 基本知識
- 閥門基本知識
- 脫殼基本知識
- UNIX作業系統概述及基本知識(轉)作業系統
- SA8000基本知識解讀(轉載)
- 有關COM的一些基本知識 (轉)
- C++基本知識點C++
- Javascript物件的基本知識JavaScript物件
- buffer cache基本知識點
- java 基本知識導航Java
- java基本知識備註Java
- 磁碟的基本知識和基本命令
- XML 程式設計思想:知識管理的基本 XML 和 RDF 技術:語義知識(轉)XML程式設計
- Java基礎知識-基本資料型別相互轉型Java資料型別
- Oracle資料庫基本知識及問題解決(轉)Oracle資料庫
- MySQL資料庫基本知識MySql資料庫
- 執行緒基本知識點執行緒