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