VB编程中网格控件的选用及使用方法【2408字】_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

VB编程中网格控件的选用及使用方法【2408字】

内容提要:ThesoftwareofvisualbasicdevelopedbyMicrosoftcorporationisbecomingoneofthemaindeveloptoolsattoday。Asitsremarkablepeculiarity,theGridcontrolhasv论文网erygreatpracticalandactiveuse。ThistopicdiscusseshowtousethegridcontrolofVBtodeveloppraticalsoftwareandhowtouseitconvenientlyandsimply。微软公司的面对对象的程序开发软件VB(VisualBasic)日益成为当前所流行的主流开发工具。作为其显著的特色之一,VB所提供的网格类控件,在实际的数据库管理系统的开发过程中具有很大的实用性和灵活性。本文旨在讨论在使用VB的实际开发过程中,如何有选择的使用VB所提供的网格类控件以及如何方便。简洁的去使用。

关键字汇:Component-BasedDevelopmentVirtualDataManagementSpreadsCalcEngine构件开发虚拟数据管理计算引擎

随着构件开发(Component-BasedDevelopment)技术的发展,供开发者使用的软件构件越来越多,单就VB中可使用的网格类控件也有许多种。网格类控件常用在数据库管理系统的开发中,用来直观地显示表或视图的二维关系,在对数据的操作上,有些控件也提供了很多便捷的方法。同样是完成这些显示和操作数据的功能,面对各式各样的控件,选择那种来达到目的,成了软件开发者必须考虑的问题。唯有选择了一个好的控件,才能提高开发效率,增强软件的功能,达到事半功倍的效果。下面,本人根据自己长期以来积累的实际经验,总结出以下几点网格控件的选用应考虑的方面:

第一,要考虑控件的实际功能。功能强。接口多的控件可以增强应用软件的质量,也可减少编程工作量,当然,这要结合应用需求来定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好几兆空间,增加了程序的冗余代码。另外,一些功能闲置,灵活性太强也可能导致最终用户不易掌握使用。

第二,控件的稳定性要强。作为应用程序的基石,不应选用那些控件本身容易出错,补丁(patch)太多的版本。

第三,控件的易用性要高。选用那些属性配置合理,事件触发机制明晰流畅,易于设计和使用,项目组中的程序员都容易接受掌握的控件。以下简要介绍几种网格类控件的特点,以供选用。Grid控件:Grid控件可显示简单的二维表格,不用和数据库直接连接,具有滚动条。行头。列头等特性,运行时可用鼠标调整行列的宽度,可用于浏览数据,若想对数据进行编辑,需结合TextBox控件,或采取其他变通方法。下面所示画面即为日本东京社会调查研究所开发的要员管理系统中硬件管理部分的画面。画面中的下部即为Grid控件,定义其名称为GrdHardComp。使用时,要首先在下图所示的属性窗口中定义其行列数,控制条格式,字体大小,填充格式,鼠标模式等特性。然后,可以动态的划分其间距: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=0GrdHardComp。Col=0GrdHardComp。FixedAlignment(GrdHardComp。Col)=2GrdHardComp。Text=“构成番号“GrdHardComp。Col=1GrdHardComp。FixedAlignment(GrdHardComp。Col)=2GrdHardComp。Text=“构成机器区分“①……在数据向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//记录数统计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。Rows+1//行数加1HardComp。MoveNextH百分号=H百分号+1当然,如果使数据真正写入数据库,还需进行数据库的读写操作。Grid只是提供了一个预览的功能,便于数据的修改。由以上Grid的特点及其使用方法可以看出,在需要对数据库进行大量数据的操作时,为了减少对数据库的直接操作,提高数据库的安全性,使用Grid控件,还是有很大方便的。Grid是VB在早期版本中就带有的控件,使用简便,稳定性好,在早期的VB开发过程中,使用尤其广泛。但现在与其它控件比较起来功能有些不足。DBGrid控件:DBGrid是专用来操作数据库的网格控件,可以绑定到Data控件,几乎不用写代码就可方便地对数据进行显示,增加。删除或修改记录,DBGrid具有OnAddNew。BeforeDelete等事件,可在增加新记录或删除修改时对数据进行有效性检验,来实现事务处理功能。DBGrid也可以在设计时编辑网格格式,指定显示字段等,由于它提供了Column。Split。SelBookmarks等对象,更增强了显示和操作数据的能力。下面是笔者所参与开发的东京社会调查研究所的项目--健康诊断系统的一个实例。图中的Data4控件把数据库和DBGrid直接连起来,DBGrid的,项目设置可以在属性窗口里直接做到。在使用时,要注意新数据是先更新数据库,然后才回写到DBGrid里。方法如下:Sql=“SELECT星号FROM表名“//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刷新如果动态的对DBGrid中的某个栏目进行增减,可以用如下方法:i=1//总显示列数记数Data4。MoveFirstDoUntilData4。EOFDBGrid1。Columns(i)。Width=1600//定义宽度DBGrid1。Columns(i)。Caption=“年龄“//标题DBGrid1。Columns(i)。DataField=“ 实际数据域 “DBGrid1。Columns(i)。Visible=True//可见性DBGrid1。Columns(i)。Alignment=1//DBGrid控件列中的值的对齐方式Data4。MoveNexti=i+1Ifi>8ThenExitDo//列数最大为8Loop由于具有良好的可靠性,灵活性和直观性,所以DBGrid控件现在被广泛使用。但不足之处在于DBGrid,和直接操作数据库,对数据库的正确性有一定的威胁。改进方法是,在修改数据库时,加入提示信息。TrueDBGrid:DBGrid是Apex软件公司为微软开发的,而Apex的TrueDBGrid控件也具有较强的数据显示及处理功能,因与DBGrid同出一宗,所以两者有很多相同点。在基本功能上,DBGrid的增,减等操作方法可直接用于TrueDBGrid,在这里就不再赘述。但在DBGrid的基础上,TrueDBGrid可以直接嵌入ListBox。Image位图。单选框等控件(如图所示),使软件的界面更加美观,实用。SSDBGrid控件:SSDBGrid来自Sheridan软件系统公司(http://www。shersoft。com),与Sheridan的其它控件一样,以漂亮的三维界面见长,SSDBGrid还可与其它数据库控件如SSDBData。SSDBCombo等有机结合,为用户处理数据提供方便,它有几百个属性。方法等接口,为界面的润色提供了很大的选择余地。另外SSDBGrid还具有虚拟数据管理(virtualdatamanagement)技术,在内存中只存贮需显示在界面上的记录,这样在处理大量数据时不致耗费系统资源而影响运行速度。SSDBGrid的缺点只是在有些版本中输入汉字时会出现一些乱码,但显示汉字的效果很不错。MSFlexGrid控件:MSFlexGrid和vsFlexArray在显示数据方面有很多独到之处,在运行中可通过拖放来交换各列的位置,动态地对数据进行排序。分组合并等。vsFlexArray控件是VideoSoft公司(www。videosoft。com)的产品,MSFlexGrid的部分技术也来自此公司。vaSpread控件:vaSpread控件在处理数据方面有着更大的灵活性,它支持数据绑定,虚拟数据管理等技术,而且具备了电子表格的功能,编辑中可以使用剪贴板来剪切或复制单元格区域的数据,单元格中也可以加入公式,借助Spread的计算引擎(SpreadsCalcEngine)对数据进行分析计算。SpreadDesigner还可方便地设计表格的格式,在单元格中加入按钮。图片。组合框等,自己设计的表格格式还能作为模板与数据分开来保存。若想得到简单的报表,vaSpread的打印功能可直接把界面和数据打印出来,而不需通过专门的报表打印控件。vaSpread是FarPointTechnologies公司的产品,网址为http://www。fpoint。com。FormulaOne控件:FormulaOne有更强的数据处理功能,是与Excel兼容的电子表格控件,在PowerBuilder中经常用到,它来自Sybase下属的Visualcomponents公司,网址http://www。visualcomp。com。l另外,PowerBuilder中,常用子窗口--DatabaseWindows的形式来显示数据库的构成。如下图,至于其使用方法,这里就不再赘述了。参考文献:1。微软公司VB部件工具,1997年版2。TrueDBGrid4。0d“Hondo“(Build4。0。0130,dated10/16/96)。3。PowerBuilder6。0应用与开发,清华大学出版社

(责任编辑:qin)