六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

QuickReport基本知識

[摘要]一、 簡單了解各控件功能   以下是各控件最簡單的使用功能,其他功能依具體的實現而介紹。  TquickRep:帶有坐標,作為其他報表控件(如TQRBand)的容器,它的Band屬性可以自動添加各種...
一、 簡單了解各控件功能

  以下是各控件最簡單的使用功能,其他功能依具體的實現而介紹。

  TquickRep:帶有坐標,作為其他報表控件(如TQRBand)的容器,它的Band屬性可以自動添加各種類型的TQRBand.

  TQRLabel:打印靜態的文本(即不是根據數據庫值來改變的),作用象Tlabel , Caption的內容就打印出來的內容。

  TQRDBText:打印數據庫字段值,一個值一行。作用象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上,其SQL屬性為:select * 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,就不印出這筆記錄.


procedure TForm1.QuickReport1Filter(var PrintRecord: Boolean);
begin
PrintRecord := False;
if YourTable.FieldByName('WantedField').AsInteger <= 100 then
Exit;
if YourTable.FieldByName('WantedField').AsInteger >= 150 then
Exit;
PrintRecord := True;


主站蜘蛛池模板: 日日摸人人看97人人澡 | 日本国产成人精品视频 | 青草视频免费看 | 性久久久久久久久久久 | 三级欧美| 日本在线视频网站www色下载 | 青青青久97在线观看香蕉 | 亚洲成人激情在线 | 特黄一级 | 一区精品麻豆入口 | 日韩免费专区 | 亚洲一级毛片 | 日韩成人免费aa在线看 | 天狼影院伦理片在线bd观看 | 日本特黄aaaaaaa大片 | 午夜免费福利在线 | 小小的日本动漫在线观看免费高清 | 日韩推理片在线免费看网站 | 欧美一区二区三区不卡 | 天堂网www在线资源中文 | 午夜精品福利在线观看 | 青春草视频在线播放 | 亚色一区 | 欧美在线一二三区 | 色天天综合久久久久综合片 | 午夜亚洲国产成人不卡在线 | 欧美艳星nikki办公室 | 日韩欧美激情 | 日韩不卡一级毛片免费 | 日本在线国产 | 中文字幕亚洲第一 | 亚洲永久网站 | 香蕉视频在线观看网址 | 日本wwwxxxxx| 欧美午夜精品久久久久免费视 | 四虎影视永久免费观看网址 | 青青青视频在线播放 | 张丽莉老师的故事 | 日韩中文字幕视频在线 | 最近中文字幕无吗免费版 | 欧美亚洲一级片 |