資源描述:
《實(shí)現(xiàn)簡單的數(shù)據(jù)報表》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實(shí)現(xiàn)簡單的數(shù)據(jù)報表在前兩講中我們已經(jīng)學(xué)習(xí)了對數(shù)據(jù)庫進(jìn)行查詢和讀寫操作的基本方法,本講中我們將為MP3Collect小程序添加另一項(xiàng)與數(shù)據(jù)庫操作有關(guān)的新功能:數(shù)據(jù)報表打印功能。圖17-1:啟動數(shù)據(jù)報表向?qū)Т蛴?shù)據(jù)報表是開發(fā)數(shù)據(jù)庫類應(yīng)用程序過程中經(jīng)常遇到的問題,特別是在商務(wù)類的應(yīng)用軟件中,單位領(lǐng)導(dǎo)或者客戶關(guān)心的不僅僅是顯示在計算機(jī)屏幕上的數(shù)據(jù),更重要的是打印出來的整齊清晰的報表。設(shè)計一個好的數(shù)據(jù)報表應(yīng)該遵循這樣幾個原則:首先要了解用戶需要得到什么樣的數(shù)據(jù),數(shù)據(jù)庫中的記錄可能有成千上萬條,打印出來的應(yīng)該是經(jīng)過提煉、精簡的,其中將涉及到數(shù)據(jù)庫的查詢、統(tǒng)計、
2、分組、排序等操作;第二個要點(diǎn)是關(guān)于報表的布局設(shè)計,其設(shè)計原則是整齊有序、美觀大方,在某些應(yīng)用場合,如財會類的應(yīng)用軟件中,報表的設(shè)計需要遵循固定的格式。第三點(diǎn)是將數(shù)據(jù)與報表結(jié)合起來,實(shí)現(xiàn)數(shù)據(jù)報表的生成與打印。l使用數(shù)據(jù)報表向?qū)D17-2:報表向?qū)?shù)設(shè)置從前面的介紹中我們可以看出,實(shí)現(xiàn)數(shù)據(jù)報表的功能還是頗為復(fù)雜的。好在CBuilder充分考慮到了數(shù)據(jù)報表的重要性,在其集成開發(fā)環(huán)境中提供了許多現(xiàn)成的數(shù)據(jù)報表控件,因此大大方便了數(shù)據(jù)報表的設(shè)計與實(shí)現(xiàn)。另外,CBuilder還提供有專門的數(shù)據(jù)報表向?qū)?,利用向?qū)Э梢栽趲追昼妰?nèi)完成一個簡單的數(shù)據(jù)報表的設(shè)計。下面
3、我們首先學(xué)習(xí)如何使用CBuilder的數(shù)據(jù)報表向?qū)?。在MP3Collect工程中使用菜單命令“File->New...”,在彈出的新建對象對話框中選擇“Business”頁,并雙擊其中的“QuickReportWizard”圖標(biāo)。這時會彈出如圖17-1所示的新數(shù)據(jù)報表向?qū)υ捒?,在其中選擇報表的樣式為“ListReport”,然后按下“StartWizard”按鈕啟動向?qū)?。圖17-3:向?qū)傻膱蟊泶绑w向?qū)Ы酉聛頃@示如圖17-2所示的參數(shù)設(shè)置對話框?!癆liasordirectory”一欄用于指定數(shù)據(jù)庫,我們在下拉列表框中選擇數(shù)據(jù)庫別名MP3Co
4、llect?!癟ableName”一欄用于指定表,我們選擇MP3Info。這時,數(shù)據(jù)表MP3Info中的四個字段ID、FileName、SongName、SingerName自動出現(xiàn)在Avaliablefields(可用的字段)列表框中,它的右側(cè)是Selectedfields(選中的字段)列表框,兩個列表框中間有四個箭頭按鈕,用來在兩個列表框之間移動字段。在本例中我們只希望打印歌曲名稱和歌手名稱兩項(xiàng)內(nèi)容,因此將SongName、SingerName兩個字段選入Selectedfields列表框。設(shè)置好顯示的數(shù)據(jù)內(nèi)容后,按下“Finish”按鈕,創(chuàng)建
5、報表完畢,這時我們可以看到,工程中新添了一個報表窗體Form1,如圖17-3所示,該窗體上的各個控件的用途及使用方法在下一節(jié)中詳細(xì)介紹?,F(xiàn)在我們先來看一下報表窗體運(yùn)行的效果,用鼠標(biāo)右鍵單擊窗體中的空白部分,在關(guān)聯(lián)菜單中選擇Preview命令,可以對報表進(jìn)行打印預(yù)覽,如圖17-4所示。打印預(yù)覽是以所見即所得的方式顯示報表輸出到打印機(jī)的效果,在預(yù)覽窗口的上方有一排快捷按鈕,可以進(jìn)行切換預(yù)覽方式、瀏覽不同的頁面等操作,其中還有兩個打印機(jī)形狀的按鈕,一個用于設(shè)置打印機(jī),另一個則是執(zhí)行打印命令,完成向打印機(jī)的輸出。預(yù)覽完畢后可以點(diǎn)擊工具條上的Close按鈕關(guān)
6、閉預(yù)覽窗口。從這個例子中我們可以看出,使用報表向?qū)韯?chuàng)建報表時,只需要指定數(shù)據(jù)庫、數(shù)據(jù)表、報表中輸出的字段名,就可以生成一個簡單的數(shù)據(jù)報表。下面我們就來仔細(xì)了解一下報表窗體上的各個組成部分,并在向?qū)傻膱蟊砘A(chǔ)上稍加修改,使之更加滿足我們的要求。圖17-4:新建報表的預(yù)覽效果l常用的數(shù)據(jù)報表元件圖17-3所示的數(shù)據(jù)報表窗體中,TTable控件Table1是我們所熟悉的,它指向MP3Collect數(shù)據(jù)庫中的MP3Info數(shù)據(jù)表,其作用是提供打印報表所需要的數(shù)據(jù)。窗體上的其它控件都屬于QuickReport控件。QuickReport是由QuSoft
7、AS公司開發(fā)的第三方軟件產(chǎn)品,它以一組元件的形式集成在CBuilder中,能夠幫助CBuilder編程人員以可視化的方法快速開發(fā)數(shù)據(jù)報表應(yīng)用程序,目前CBuilder5.0中采用的是QuickReport3.0版本。在元件面板中找到QReport元件欄,我們可以看到其中包含了二十幾個元件,利用這些元件,可以使報表輸出各種類型的數(shù)據(jù),如圖像、圖形、數(shù)值、文本、HTML格式的文本等,并控制報表各個部分的輸出效果,如大小、字體、顏色、對齊方式等。在設(shè)計報表時我們會發(fā)現(xiàn),設(shè)計報表和設(shè)計程序窗體十分相似,報表中常用的一些元件,如TQRLabel、TQRMem
8、o等元件與普通的窗體元件如TLabel、TMemo等在名稱和用途上也有一定的對應(yīng)關(guān)系。報表元件與普通窗體元件之間的最重要的