- 相關(guān)推薦
Visual Basic6.0下數(shù)據(jù)庫(kù)報(bào)表制作技巧
在運(yùn)用VisualBasic編制MIS系統(tǒng)前臺(tái)程序時(shí),往往會(huì)需要處理大量的報(bào)表。而這些報(bào)表的制作,在VisualBasic6.0出現(xiàn)之前,要么需要使用Print語(yǔ)句編寫(xiě)大量程序代碼,要么選擇諸如Seagate等第三方公司所提供的諸如DataReport等軟件,而一旦真正使用這些沒(méi)有本地化的軟件或控件,程序員往往會(huì)遇到各種各樣令人頭疼不已的問(wèn)題棗或者是中文字體顯示有所限制,或者是報(bào)表數(shù)據(jù)無(wú)法動(dòng)態(tài)及時(shí)更新,或者所提供的數(shù)據(jù)處理或統(tǒng)計(jì)功能并不怎么適用。所幸的是,MicroSoft推出的VisualBasic6.0專(zhuān)業(yè)版和企業(yè)版中包含一個(gè)全新的組件棗DataReportDesigner(DRD),運(yùn)用這個(gè)報(bào)表設(shè)計(jì)器,我們可以將報(bào)表與數(shù)據(jù)環(huán)境對(duì)象或者是ActiveX數(shù)據(jù)對(duì)象直接關(guān)聯(lián),使得VisualBasic6.0下的報(bào)表設(shè)計(jì)效率得到空前提高。下面,就本人在運(yùn)用DRD進(jìn)行報(bào)表程序設(shè)計(jì)所獲得的心得與大家共同探討一下。一將DRD與DED(DataEnviromentDesigner)結(jié)合。
這是運(yùn)用DRD解決VisualBasic6.0報(bào)表處理最常用的一種方法,在Samples中有一個(gè)名為Prjnwind工程就是專(zhuān)門(mén)介紹如何使用結(jié)合使用DRD和DED的例子程序。我們可以通過(guò)選擇新工程中的DataProject類(lèi)型就可以自動(dòng)增加一個(gè)空的DED和DRD實(shí)例到Projectexplorer中,打開(kāi)一個(gè)空DataReport實(shí)例將禁止工具欄中的General窗體并在工具欄底添加一個(gè)DataReort按鈕。如下圖:
可以看到,DataReport的專(zhuān)用控件棗RptLabel、RptTextBox、RptImage、RptLine、RptShape和RptFunction。除了RptFunction,每個(gè)Rpt控件都可以在固有VisualBasic工具面板中找到對(duì)應(yīng)的控件。當(dāng)然,控件所代表的功能并不完全一樣,例如RptTextBox在報(bào)表運(yùn)行實(shí)例中完全沒(méi)有輸入焦點(diǎn),實(shí)際上,它實(shí)現(xiàn)的是對(duì)報(bào)表(DataReport)的細(xì)節(jié)區(qū)(Detail)報(bào)表數(shù)據(jù)內(nèi)容的具體顯示。我們可以通過(guò)DED和DRD創(chuàng)建一個(gè)報(bào)表,具體操作如下:
打開(kāi)一個(gè)新的數(shù)據(jù)工程項(xiàng)目。
在DataEnviroment1中設(shè)定其Connection1屬性,連接到某個(gè)數(shù)據(jù)源。
在DataEnviroment1中添加一個(gè)新命令棗Command1,設(shè)定好其屬性。
選擇DataReport1,在頁(yè)標(biāo)頭區(qū)加入一個(gè)Rptlabel控件,輸入報(bào)表標(biāo)題。
5.選擇DataReport1,在細(xì)節(jié)區(qū)加入一個(gè)RptTextBox控件,并將DataReport1的DataSource屬性設(shè)為DataEnvironment1,DataReport1的Command屬性設(shè)定為Command1,RptTextBox的Command屬性設(shè)定為Command1,DataField屬性設(shè)定為Author。
增加一個(gè)Command控件,在Click事件中加入如下代碼:
PrivateSubCommand1_Click()
Dimrpt1AsNewDataReport1
rpt1.Show1
EndSub
運(yùn)行該程序,點(diǎn)擊Command按鈕將顯示報(bào)表。
實(shí)際應(yīng)用中,我們可以將DataEnviroment與分層Recordset綁定,從而實(shí)現(xiàn)更加復(fù)雜和具有統(tǒng)計(jì)功能的數(shù)據(jù)報(bào)表,分層Recordset在許多VisualBasic參考書(shū)中有述,大家可以自行查閱。
二將DRD直接與ADO綁定。
這種方法是實(shí)現(xiàn)報(bào)表數(shù)據(jù)及時(shí)動(dòng)態(tài)顯示一種最為有效的方法。很多的時(shí)候,我們要求不退出應(yīng)用程序而要求報(bào)表能顯示數(shù)據(jù)的變動(dòng)。這時(shí),采用上述的方法或其它第三方軟件都是無(wú)法做到的。這時(shí),用print語(yǔ)句編寫(xiě)大量代碼是一種令大多數(shù)VB程序員煩惱的事情,但是,我們可以通過(guò)將DRD綁定到某個(gè)ADO數(shù)據(jù)對(duì)象來(lái)得以實(shí)現(xiàn)。
建立一個(gè)新的標(biāo)準(zhǔn)工程。
添加一個(gè)DataReport實(shí)例。
添加一個(gè)ADO數(shù)據(jù)控件并實(shí)例化。
設(shè)定ADO數(shù)據(jù)控件的屬性,將其連接到某個(gè)數(shù)據(jù)庫(kù)。
添加一個(gè)DataGrid控件并實(shí)例化,綁定到所選擇數(shù)據(jù)庫(kù)的某個(gè)表或SQL查詢(xún)結(jié)果。(這一步非常關(guān)鍵,因?yàn)槿绻粚DO數(shù)據(jù)源綁定到該DataGrid的話(huà),數(shù)據(jù)的更新很難馬上響應(yīng)。)
增加一個(gè)按鈕并在Click事件中加入如下代碼:
PrivateSubCommand1_Click()
Dimrpt1AsNewDataReport1
Setrpt1.DataSource=Adodc1
rpt1.Show1
EndSub
在DataReport1的細(xì)節(jié)區(qū)增加兩個(gè)RptTextBox,并分別將其DataField屬性設(shè)定為Author與Au_ID。
運(yùn)行程序,當(dāng)改變DataGrid1控件中的Author值時(shí),點(diǎn)擊Command1按鈕所顯示的報(bào)表中的Author字段的值也會(huì)相應(yīng)改變。
實(shí)際上,在這里我們是將需要顯示的報(bào)表內(nèi)容強(qiáng)行與某個(gè)Datagrid控件綁定,從而實(shí)現(xiàn)數(shù)據(jù)的及時(shí)更新。
由上面的操作可以看到,使用VisualBasic6.0所含的DRD組件,使得報(bào)表的制作處理變得輕松自如,當(dāng)然,目前DRD中仍然有不盡人意的地方棗屬性和事件太少,控制不夠靈活,甚至還存在有一些Bugs,但是,我們相信,隨著DRD的不斷成熟,它的使用將更為方便,功能也將更加強(qiáng)大。
。ǜ窖裕赫(qǐng)作者將姓名、單位、通信地址及有關(guān)信息告知編輯部)
【Visual Basic6.0下數(shù)據(jù)庫(kù)報(bào)表制作技巧】相關(guān)文章:
《Visual FoxPro6.0數(shù)據(jù)庫(kù)教程》課程改革及評(píng)價(jià)方案05-23
制作個(gè)人簡(jiǎn)歷的技巧02-14
求職簡(jiǎn)歷制作技巧注意事項(xiàng)10-13
個(gè)人簡(jiǎn)歷制作的20個(gè)技巧12-12
數(shù)據(jù)庫(kù)的學(xué)習(xí)心得04-04
軍訓(xùn)匯報(bào)表演領(lǐng)導(dǎo)講話(huà)11-30
統(tǒng)計(jì)報(bào)表工作總結(jié)02-16
計(jì)算機(jī)數(shù)據(jù)庫(kù)論文07-26