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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

淺析VB編程中網格控件的選用與使用分析

摘要:ThesoftwareofvisualbasicdevelopedbyMicrosoftcorporationisbecomingoneofthemaindeveloptoolsattoday。Asit'sremarkablepeculiarity,theGridcontrolhasverygreatpracticalandactiveuse。ThistopicdiscusseshowtousethegridcontrolofVBtodeveloppraticalsoftwareandhowtouseitconvenientlyandsimply。微軟公司的面對對象的程序開發(fā)軟件VB(VisualBasic)日益成為當前所流行的主流開發(fā)工具。作為其顯著的特色之一,VB所提供的網格類控件,在實際的數據庫管理系統(tǒng)的開發(fā)過程中具有很大的實用性和靈活性。本文旨在討論在使用VB的實際開發(fā)過程中,如何有選擇的使用VB所提供的網格類控件以及如何方便、簡潔的去使用。關鍵詞匯:Component-BasedDevelopmentVirtualDataManagementSpread'sCalcEngine構件開發(fā)虛擬數據管理計算引擎前言隨著基于構件開發(fā)(Component-BasedDevelopment)技術的發(fā)展,供開發(fā)者使用的軟件構件越來越多,單就VB中可使用的網格類控件也有許多種。網格類控件常用在數據庫管理系統(tǒng)的開發(fā)中,用來直觀地顯示表或視圖的二維關系,在對數據的操作上,有些控件也提供了很多便捷的方法。同樣是完成這些顯示和操作數據的功能,面對各式各樣的控件,選擇那種來達到目的,成了軟件開發(fā)者必須考慮的問題。唯有選擇了一個好的控件,才能提高開發(fā)效率,增強軟件的功能,達到事半功倍的效果。下面,本人根據自己長期以來積累的實際經驗,總結出以下幾點網格控件的選用應考慮的方面:第一,要考慮控件的實際功能。功能強、接口多的控件可以增強應用軟件的質量,也可減少編程工作量,當然,這要結合應用需求來定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好幾兆空間,增加了程序的冗余代碼。另外,一些功能閑置,靈活性太強也可能導致最終用戶不易掌握使用。第二,控件的穩(wěn)定性要強。作為應用程序的基石,不應選用那些控件本身容易出錯,補丁(patch)太多的版本。第三,控件的易用性要高。選用那些屬性配置合理,事件觸發(fā)機制明晰流暢,易于設計和使用,項目組中的程序員都容易接受掌握的控件。以下簡要介紹幾種網格類控件的特點,以供選用。Grid控件:Grid控件可顯示簡單的二維表格,不用和數據庫直接連接,具有滾動條、行頭、列頭等特性,運行時可用鼠標調整行列的寬度,可用于瀏覽數據,若想對數據進行編輯,需結合TextBox控件,或采取其他變通方法。下面所示畫面即為日本東京社會調查研究所開發(fā)的《要員管理系統(tǒng)》中硬件管理部分的畫面。畫面中的下部即為Grid控件,定義其名稱為GrdHardComp。使用時,要首先在下圖所示的屬性窗口中定義其行列數,控制條格式,字體大小,填充格式,鼠標模式等特性。然后,可以動態(tài)的劃分其間距:GrdHardComp.ColWidth(0)=GrdHardComp.Width*1/6GrdHardComp.ColWidth(1)=GrdHardComp.Width*5/24GrdHardComp.ColWidth(2)=GrdHardComp.Width*1/6GrdHardComp.ColWidth(3)=GrdHardComp.Width*1/6GrdHardComp.ColWidth(4)=GrdHardComp.Width*3/24GrdHardComp.ColWidth(5)=GrdHardComp.Width*1/6GrdHardComp.ColWidth(6)=GrdHardComp.Width*1/6PrivateHards()AsM_Hard定義其標題:GrdHardComp.Row=0'GrdHardComp.Col=0GrdHardComp.FixedAlignment(GrdHardComp.Col)=2GrdHardComp.Text="構成番號"GrdHardComp.Col=1GrdHardComp.FixedAlignment(GrdHardComp.Col)=2GrdHardComp.Text="構成機器區(qū)分"①……在數據向Grid中寫入或取出時,為了便于大量的數據同時,簡便地寫入與修改,可以定義一個類型。如下:TypeM_HardNumberAsStringOrderNumAsStringMachKindAsStringMachKindNameAsString……EndType(其中Number等均為要輸入的圖示條目)PrivateHards()AsM_HardHards(),此時就作為數據的傳輸變量,進行Grid與TextBox之間的數據傳輸。數據向類內寫入:IfHardComp.RecordCount>0ThenHardComp.MoveFirstDoUntilHardComp.EOFReDimPreserveHards(H%)//H%為記數變量。Hards(H%).OrderNum=HardComp![OrderNum]//輸入編號Hards(H%).MachKind=HardComp![MachKind]//種類Hards(H%).MachKindName=HardComp![MachKindName]//分類名Hards(H%).MachName=HardComp![MachName]//名稱……loopHardComp.MoveFirst類內數據向Grid內寫入:GrdHardComp.Row=H%1//記錄數統(tǒng)計GrdHardComp.Col=0GrdHardComp.Text=""&Hards(H%).OrderNumGrdHardComp.Col=1GrdHardComp.Text=""&Hards(H%).MachKindGrdHardComp.Col=2GrdHardComp.Text=""&Hards(H%).MachKindNameGrdHardComp.Col=3GrdHardComp.Text=""&Hards(H%).MachNameGrdHardComp.Col=4……GrdHardComp.Text=""&Hards(H%).HardLastDateGrdHardComp.Rows=GrdHardComp.Rows1//行數加1HardComp.MoveNextH%=H%1當然,如果使數據真正寫入數據庫,還需進行數據庫的讀寫操作。Grid只是提供了一個預覽的功能,便于數據的修改。下面是筆者所參與開發(fā)的東京社會調查研究所的項目--《健康診斷系統(tǒng)》的一個實例。圖中的Data4控件把數據庫和DBGrid直接連起來,DBGrid的題目,項目設置可以在屬性窗口里直接做到。在使用時,要注意新數據是先更新數據庫,然后才回寫到DBGrid里。方法如下:Sql="SELECT*FROM表名"http://SQL語句SetData4.Recordset=MyDB2.OpenRecordset(sSql,dbOpenSnapshot)Data4.Refresh或:DatMonthPlan.RecordSource="SELECT*FROM表名WHERE(((關鍵字)='"&Key&"'));如果想對DBGrid中的某個條目進行復制,方法如下:Data4.Recordset.AddNewData4.Recordset![關鍵字]=Key//關鍵字索引Data4.Recordset![記號]=DBGrid.Columns(0).CellValue(DBGrid.GetBookmark(0))//第一列Data4.Recordset[番號]=DBGrid.Columns(1).CellValue(DBGrid.GetBookmark(0))//第二列Data4.Recordset![氏名]=DBGrid.Columns(2).CellValue(DBGrid.GetBookmark(0))//第三列Data4.Recordset.UpdateData4.Refresh//數據庫更新DBGrid.Refresh//DBGrid刷新如果動態(tài)的對DBGrid中的某個欄目進行增減,可以用如下方法:i=1//總顯示列數記數Data4.MoveFirstDoUntilData4.EOFDBGrid1.Columns(i).Width=1600//定義寬度DBGrid1.Columns(i).Caption="年齡"http://標題DBGrid1.Columns(i).DataField="&實際數據域&"DBGrid1.Columns(i).Visible=True//可見性DBGrid1.Columns(i).Alignment=1//DBGrid控件列中的值的對齊方式Data4.MoveNexti=i1Ifi>8ThenExitDo//列數最大為8Loop由于具有良好的可靠性,靈活性和直觀性,所以DBGrid控件現在被廣泛使用。但不足之處在于DBGrid,和直接操作數據庫,對數據庫的正確性有一定的威脅。改進方法是,在修改數據庫時,加入提示信息。TrueDBGrid:DBGrid是Apex軟件公司為微軟開發(fā)的,而Apex的TrueDBGrid控件也具有較強的數據顯示及處理功能,因與DBGrid同出一宗,所以兩者有很多相同點。在基本功能上,DBGrid的增,減等操作方法可直接用于TrueDBGrid,在這里就不再贅述。但在DBGrid的基礎上,TrueDBGrid可以直接嵌入ListBox、Image位圖、單選框等控件(如圖所示),使軟件的界面更加美觀,實用。SSDBGrid控件:SSDBGrid來自Sheridan軟件系統(tǒng)公司(),與Sheridan的其它控件一樣,以漂亮的三維界面見長,SSDBGrid還可與其它數據庫控件如SSDBData、SSDBCombo等有機結合,為用戶處理數據提供方便,它有幾百個屬性、方法等接口,為界面的潤色提供了很大的選擇余地。另外SSDBGrid還具有虛擬數據管理(virtualdatamanagement)技術,在內存中只存貯需顯示在界面上的記錄,這樣在處理大量數據時不致耗費系統(tǒng)資源而影響運行速度。SSDBGrid的缺點只是在有些版本中輸入漢字時會出現一些亂碼,但顯示漢字的效果很不錯。MSFlexGrid控件:

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

vaSpread控件在處理數據方面有著更大的靈活性,它支持數據綁定,虛擬數據管理等技術,而且具備了電子表格的功能,編輯中可以使用剪貼板來剪切或復制單元格區(qū)域的數據,單元格中也可以加入公式,借助Spread的計算引擎(Spread'sCalcEngine)對數據進行分析計算。SpreadDesigner還可方便地設計表格的格式,在單元格中加入按鈕、圖片、組合框等,自己設計的表格格式還能作為模板與數據分開來保

溫馨提示

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

評論

0/150

提交評論