淺析VB編程中網(wǎng)格控件的選用與使用分析_第1頁
淺析VB編程中網(wǎng)格控件的選用與使用分析_第2頁
淺析VB編程中網(wǎng)格控件的選用與使用分析_第3頁
淺析VB編程中網(wǎng)格控件的選用與使用分析_第4頁
淺析VB編程中網(wǎng)格控件的選用與使用分析_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

淺析VB編程中網(wǎng)格控件的選用與使用分析

摘要:ThesoftwareofvisualbasicdevelopedbyMicrosoftcorporationisbecomingoneofthemaindeveloptoolsattoday。Asit‘sremarkablepeculiarity,theGridcontrolhasverygreatpracticalandactiveuse。ThistopicdiscusseshowtousethegridcontrolofVBtodeveloppraticalsoftwareandhowtouseitconvenientlyandsimply。微軟公司的面對(duì)對(duì)象的程序開發(fā)軟件VB(VisualBasic)日益成為當(dāng)前所流行的主流開發(fā)工具。作為其顯著的特色之一,VB所提供的網(wǎng)格類控件,在實(shí)際的數(shù)據(jù)庫管理系統(tǒng)的開發(fā)過程中具有很大的實(shí)用性和靈活性。本文旨在討論在使用VB的實(shí)際開發(fā)過程中,如何有選擇的使用VB所提供的網(wǎng)格類控件以及如何方便、簡潔的去使用。

關(guān)鍵詞匯:Component-BasedDevelopmentVirtualDataManagementSpread‘sCalcEngine構(gòu)件開發(fā)虛擬數(shù)據(jù)管理計(jì)算引擎

前言

隨著基于構(gòu)件開發(fā)(Component-BasedDevelopment)技術(shù)的發(fā)展,供開發(fā)者使用的軟件構(gòu)件越來越多,單就VB中可使用的網(wǎng)格類控件也有許多種。網(wǎng)格類控件常用在數(shù)據(jù)庫管理系統(tǒng)的開發(fā)中,用來直觀地顯示表或視圖的二維關(guān)系,在對(duì)數(shù)據(jù)的操作上,有些控件也提供了很多便捷的方法。同樣是完成這些顯示和操作數(shù)據(jù)的功能,面對(duì)各式各樣的控件,選擇那種來達(dá)到目的,成了軟件開發(fā)者必須考慮的問題。唯有選擇了一個(gè)好的控件,才能提高開發(fā)效率,增強(qiáng)軟件的功能,達(dá)到事半功倍的效果。下面,本人根據(jù)自己長期以來積累的實(shí)際經(jīng)驗(yàn),總結(jié)出以下幾點(diǎn)網(wǎng)格控件的選用應(yīng)考慮的方面

第一,要考慮控件的實(shí)際功能。功能強(qiáng)、接口多的控件可以增強(qiáng)應(yīng)用軟件的質(zhì)量,也可減少編程工作量,當(dāng)然,這要結(jié)合應(yīng)用需求來定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好幾兆空間,增加了程序的冗余代碼。另外,一些功能閑置,靈活性太強(qiáng)也可能導(dǎo)致最終用戶不易掌握使用。

第二,控件的穩(wěn)定性要強(qiáng)。作為應(yīng)用程序的基石,不應(yīng)選用那些控件本身容易出錯(cuò),補(bǔ)丁(patch)太多的版本。

第三,控件的易用性要高。選用那些屬性配置合理,事件觸發(fā)機(jī)制明晰流暢,易于設(shè)計(jì)和使用,項(xiàng)目組中的程序員都容易接受掌握的控件。

以下簡要介紹幾種網(wǎng)格類控件的特點(diǎn),以供選用。Grid控件:Grid控件可顯示簡單的二維表格,不用和數(shù)據(jù)庫直接連接,具有滾動(dòng)條、行頭、列頭等特性,運(yùn)行時(shí)可用鼠標(biāo)調(diào)整行列的寬度,可用于瀏覽數(shù)據(jù),若想對(duì)數(shù)據(jù)進(jìn)行編輯,需結(jié)合TextBox控件,或采取其他變通方法。下面所示畫面即為日本東京社會(huì)調(diào)查研究所開發(fā)的《要員管理系統(tǒng)》中硬件管理部分的畫面。畫面中的下部即為Grid控件,定義其名稱為GrdHardComp。使用時(shí),要首先在下圖所示的屬性窗口中定義其行列數(shù),控制條格式,字體大小,填充格式,鼠標(biāo)模式等特性。然后,可以動(dòng)態(tài)的劃分其間距:(0)=*1/6(1)=*5/24(2)=*1/6(3)=*1/6(4)=*3/24(5)=*1/6(6)=*1/6PrivateHards()AsM_Hard定義其標(biāo)題:=0‘=0()=2="構(gòu)成番號(hào)"=1()=2="構(gòu)成機(jī)器區(qū)分"①……在數(shù)據(jù)向Grid中寫入或取出時(shí),為了便于大量的數(shù)據(jù)同時(shí),簡便地寫入與修改,可以定義一個(gè)類型。TypeM_HardNumberAsStringOrderNumAsStringMachKindAsStringMachKindNameAsString……EndTypePrivateHards()AsM_HardHards(),此時(shí)就作為數(shù)據(jù)的傳輸變量,進(jìn)行Grid與TextBox之間的數(shù)據(jù)傳輸。數(shù)據(jù)向類內(nèi)寫入:If0ThenDoUntilReDimPreserveHards(H%)//H%為記數(shù)變量。Hards(H%).OrderNum=HardComp![OrderNum]//輸入編號(hào)Hards(H%).MachKind=HardComp![MachKind]//種類Hards(H%).MachKindName=HardComp![MachKindName]//分類名Hards(H%).MachName=HardComp![MachName]//名稱……loop類內(nèi)數(shù)據(jù)向Grid內(nèi)寫入:=H%1//記錄數(shù)統(tǒng)計(jì)=0=""&Hards(H%).OrderNum=1=""&Hards(H%).MachKind=2=""&Hards(H%).MachKindName=3=""&Hards(H%).MachName=4……=""&Hards(H%).HardLastDate=1//行數(shù)加1H%=H%1當(dāng)然,如果使數(shù)據(jù)真正寫入數(shù)據(jù)庫,還需進(jìn)行數(shù)據(jù)庫的讀寫操作。Grid只是提供了一個(gè)預(yù)覽的功能,便于數(shù)據(jù)的修改。

由以上Grid的特點(diǎn)及其使用方法可以看出,在需要對(duì)數(shù)據(jù)庫進(jìn)行大量數(shù)據(jù)的操作時(shí),為了減少對(duì)數(shù)據(jù)庫的直接操作,提高數(shù)據(jù)庫的安全性,使用Grid控件,還是有很大方便的。Grid是VB在早期版本中就帶有的控件,使用簡便,穩(wěn)定性好,在早期的VB開發(fā)過程中,使用尤其廣泛。但現(xiàn)在與其它控件比較起來功能有些不足。DBGrid控件:DBGrid是專用來操作數(shù)據(jù)庫的網(wǎng)格控件,可以綁定到Data控件,幾乎不用寫代碼就可方便地對(duì)數(shù)據(jù)進(jìn)行顯示,增加、刪除或修改記錄,DBGrid具有OnAddNew、BeforeDelete等事件,可在增加新記錄或刪除修改時(shí)對(duì)數(shù)據(jù)進(jìn)行有效性檢驗(yàn),來實(shí)現(xiàn)事務(wù)處理功能。DBGrid也可以在設(shè)計(jì)時(shí)編輯網(wǎng)格格式,指定顯示字段等,由于它提供了Column、Split、SelBookmarks等對(duì)象,更增強(qiáng)了顯示和操作數(shù)據(jù)的能力。

下面是筆者所參與開發(fā)的東京社會(huì)調(diào)查研究所的項(xiàng)目--《健康診斷系統(tǒng)》的一個(gè)實(shí)例。圖中的Data4控件把數(shù)據(jù)庫和DBGrid直接連起來,DBGrid的題目,項(xiàng)目設(shè)置可以在屬性窗口里直接做到。在使用時(shí),要注意新數(shù)據(jù)是先更新數(shù)據(jù)庫,然后才回寫到DBGrid里。方法Sql="SELECT*FROM表名"http://SQL語句Set=(sSql,dbOpenSnapshot)或:="SELECT*FROM表名WHERE(((關(guān)鍵字)=‘"&Key&"‘));如果想對(duì)DBGrid中的某個(gè)條目進(jìn)行復(fù)制,方法![關(guān)鍵字]=Key//關(guān)鍵字索引![記號(hào)]=(0).CellValue((0))//第一列[番號(hào)]=(1).CellValue((0))//第二列![氏名]=(2).CellValue((0))//第三列//數(shù)據(jù)庫更新//DBGrid刷新如果動(dòng)態(tài)的對(duì)DBGrid中的某個(gè)欄目進(jìn)行增減,可以用如下方法:i=1//總顯示列數(shù)記數(shù)DoUntil(i).Width=1600//定義寬度(i).Caption="年齡"http://標(biāo)題(i).DataField="&實(shí)際數(shù)據(jù)域&"(i).Visible=True//可見性(i).Alignment=1//DBGrid控件列中的值的對(duì)齊方式i=i1Ifi8ThenExitDo//列數(shù)最大為8Loop由于具有良好的可靠性,靈活性和直觀性,所以DBGrid控件現(xiàn)在被廣泛使用。但不足之處在于DBGrid,和直接操作數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫的正確性有一定的威脅。改進(jìn)方法是,在修改數(shù)據(jù)庫時(shí),加入提示信息。

TrueDBGrid:DBGrid是Apex軟件公司為微軟開發(fā)的,而Apex的TrueDBGrid控件也具有較強(qiáng)的數(shù)據(jù)顯示及處理功能,因與DBGrid同出一宗,所以兩者有很多相同點(diǎn)。在基本功能上,DBGrid的增,減等操作方法可直接用于TrueDBGrid,在這里就不再贅述。但在DBGrid的基礎(chǔ)上,TrueDBGrid可以直接嵌入ListBox、Image位圖、單選框等控件,使軟件的界面更加美觀,實(shí)用。

SSDBGrid控件:SSDBGrid來自Sheridan軟件系統(tǒng)公司(http://),與Sheridan的其它控件一樣,以漂亮的三維界面見長,SSDBGrid還可與其它數(shù)據(jù)庫控件如SSDBData、SSDBCombo等有機(jī)結(jié)合,為用戶處理數(shù)據(jù)提供方便,它有幾百個(gè)屬性、方法等接口,為界面的潤色提供了很大的選擇余地。另外SSDBGrid還具有虛擬數(shù)據(jù)管理(virtualdatamanagement)技術(shù),在內(nèi)存中只存貯需顯示在界面上的記錄,這樣在處理大量數(shù)據(jù)時(shí)不致耗費(fèi)系統(tǒng)資源而影響運(yùn)行速度。SSDBGrid的缺點(diǎn)只是在有些版本中輸入漢字時(shí)會(huì)出現(xiàn)一些亂碼,但顯示漢字的效果很不錯(cuò)。

MSFlexGrid控件:MSFlexGrid和vsFlexArray在顯示數(shù)據(jù)方面有很多獨(dú)到之處,在運(yùn)行中可通過拖放來交換各列的位置,動(dòng)態(tài)地對(duì)數(shù)據(jù)進(jìn)行排序、分組合并等。vsFlexArray控件是VideoSoft公司的產(chǎn)品,MSFlexGrid的部分技術(shù)也來自此公司。

vaSpread控件:vaSpread控件在處理數(shù)據(jù)方面有著更大的靈活性,它支持?jǐn)?shù)據(jù)綁定,虛擬數(shù)據(jù)管理等技術(shù),而且具備了電子表格的功能,編輯中可以使用剪貼板來剪切或復(fù)制單元格區(qū)域的數(shù)據(jù),單元格中也可以加入公式,借助Spread的計(jì)算引擎(Spread‘sCalcEngine)對(duì)數(shù)據(jù)進(jìn)行分析計(jì)算。SpreadDesigner還可方便地設(shè)計(jì)表格的格式,在單元格中加入按鈕、圖片、組合框等,自己設(shè)計(jì)的表格格式還能作為模板與數(shù)據(jù)分開來保存。若想得到簡單的報(bào)表,vaSpread的打印功能可直接把界面和數(shù)據(jù)打印出來,而

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論