论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 论文大全网 >> 计算机论文 >> 计算机网络论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
浅谈VB编程中网格控件的选用及使用方法

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

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

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

第三,控件的易用性要高。选用那些属性配置合理,事件触发机制明晰流畅,易于设计和使用,项目组中的程序员都轻易接受把握的控件。  以下简要介绍几种网格类控件的特征,以供选用。 grid控件摘要: grid控件可显示简单的二维表格,不用和数据库直接连接,具有滚动条、行头、列头等特性,运行时可用鼠标调整行列的宽度,可用于浏览数据,若想对数据进行编辑,需结合textbox控件,或采取其他变通方法。下面所示画面即为日本东京社会调查探究所开发的《要员管理系统》中硬件管理部分的画面。 画面中的下部即为grid控件,定义其名称为grdhardcomp。使用时,要首先在下图所示的属性窗口中定义其行列数,控制条格式,字体大小,填充格式,鼠标模式等特性。 然后,可以动态的划分其间距摘要: grdhardcomp.colwidth(0) = grdhardcomp.width * 1 / 6 grdhardcomp.colwidth(1) = grdhardcomp.width * 5 / 24 grdhardcomp.colwidth(2) = grdhardcomp.width * 1 / 6 grdhardcomp.colwidth(3) = grdhardcomp.width * 1 / 6 grdhardcomp.colwidth(4) = grdhardcomp.width * 3 / 24 grdhardcomp.colwidth(5) = grdhardcomp.width * 1 / 6 grdhardcomp.colwidth(6) = grdhardcomp.width * 1 / 6 private hards() as m_hard 定义其标题摘要: grdhardcomp.row = 0 ' grdhardcomp.col = 0 grdhardcomp.fixedalignment(grdhardcomp.col) = 2 grdhardcomp.text = "构成番号" grdhardcomp.col = 1 grdhardcomp.fixedalignment(grdhardcomp.col) = 2 grdhardcomp.text = "构成机器区分"① … … 在数据向grid中写入或取出时,为了便于大量的数据同时,简便地写入和修改,可以定义一个类型。如下摘要: type m_hard number as string ordernum as string machkind as string machkindname as string … … end type (其中number等均为要输入的图示条目) private hards() as m_hard hards(),此时就作为数据的传输变量,进行grid和textbox之间的数据传输。 数据向类内写入摘要: if hardcomp.recordcount > 0 then hardcomp.movefirst do until hardcomp.eof redim preserve hards(h%)// h%为记数变量。 hards(h%).ordernum = hardcomp![ ordernum//输入编号 hards(h%).machkind = hardcomp![ machkind//种类 hards(h%).machkindname = hardcomp![ machkindname//分类名 hards(h%).machname = hardcomp![ machname//名称 … … loop hardcomp.movefirst 类内数据向grid内写入摘要: grdhardcomp.row = h% + 1//记录数统计 grdhardcomp.col = 0 grdhardcomp.text = " " %26 hards(h%).ordernum grdhardcomp.col = 1 grdhardcomp.text = " " %26 hards(h%).machkind grdhardcomp.col = 2 grdhardcomp.text = " " %26 hards(h%).machkindname grdhardcomp.col = 3 grdhardcomp.text = " " %26 hards(h%).machname grdhardcomp.col = 4 … … grdhardcomp.text = " " %26 hards(h%).hardlastdate grdhardcomp.rows = grdhardcomp.rows + 1//行数加1 hardcomp.movenext h% = 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语句 set data4.recordset = mydb2.openrecordset(ssql, dbopensnapshot) data4.refresh 或摘要: datmonthplan.recordsource = "select * from 表名where (((关键字)='" %26 key %26 "')); 假如想对dbgrid中的某个条目进行复制,方法如下摘要: data4.recordset.addnew data4.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.update data4.refresh//数据库更新 dbgrid.refresh// dbgrid刷新 假如动态的对dbgrid中的某个栏目进行增减,可以用如下方法摘要: i = 1 //总显示列数记数 data4.movefirst do until data4.eof dbgrid1.columns(i).width = 1600 //定义宽度 dbgrid1.columns(i).caption = "年龄" //标题 dbgrid1.columns(i).datafield = "%26 实际数据域 %26" dbgrid1.columns(i).visible = true //可见性 dbgrid1.columns(i).alignment = 1 //dbgrid 控件列中的值的对齐方式 data4.movenext i = i + 1 if i > 8 then exit do//列数最大为8 loop 由于具有良好的可靠性,灵活性和直观性,所以dbgrid控件现在被广泛使用。但不足之处在于dbgrid,和直接操作数据库,对数据库的正确性有一定的威胁。改进方法是,在修改数据库时,加入提示信息。 true dbgrid摘要: dbgrid是apex软件公司为微软开发的,而apex的true dbgrid控件也具有较强的数据显示及处理功能,因和dbgrid同出一宗,所以两者有很多相同点。在基本功能上,dbgrid的增,减等操作方法可直接用于true dbgrid,在这里就不再赘述。但在dbgrid的基础上,true dbgrid可以直接嵌入listbox、image位图、单选框等控件(如图所示),使软件的界面更加美观,实用。 ssdbgrid控件摘要:

ssdbgrid来自sheridan软件系统公司(http摘要://www.shersoft.com),和sheridan的其它控件一样,以漂亮的三维界面见长,ssdbgrid还可和其它数据库控件如ssdbdata、ssdbcombo等有机结合,为用户处理数据提供方便,它有几百个属性、方法等接口,为界面的润色提供了很大的选择余地。另外ssdbgrid还具有虚拟数据管理(virtual data management)技术,在内存中只存贮需显示在界面上的记录,这样在处理大量数据时不致耗费系统资源而影响运行速度。ssdbgrid的缺点只是在有些版本中输入汉字时会出现一些乱码,但显示汉字的效果很不错。 msflexgrid控件摘要:   msflexgrid和vsflexarray在显示数据方面有很多独到之处,在运行中可通过拖放来交换各列的位置,动态地对数据进行排序、分组合并等。vsflexarray控件是videosoft公司的产品,msflexgrid的部分技术也来自此公司。 vaspread控件摘要:  

 vaspread控件在处理数据方面有着更大的灵活性,它支持数据绑定,虚拟数据管理等技术,而且具备了电子表格的功能,编辑中可以使用剪贴板来剪切或复制单元格区域的数据,单元格中也可以加入公式,借助spread的计算引擎(spread's calc engine)对数据进行分析计算。spread designer还可方便地设计表格的格式,在单元格中加入按钮、图片、组合框等,自己设计的表格格式还能作为模板和数据分开来保存。若想得到简单的报表,vaspread的打印功能可直接把界面和数据打印出来,而不需通过专门的报表打印控件。vaspread是farpointtechnologies公司的产品,网址为 http摘要://www.fpoint.com。 formula one控件摘要: formula one有更强的数据处理功能,是和excel兼容的电子表格控件,在powerbuilder中经常用到,它来自sybase下属的visual components公司,网址http摘要://www.visualcomp.com。l另外,powerbuilder中,常用子窗口--database windows 的形式来显示数据库的构成。如下图,至于其使用方法,这里就不再赘述了。

参考文献摘要:

1. 微软公司《vb部件工具》,1997年版
2. true dbgrid 4.0d "hondo" (build 4.0.0130, dated 10/16/96).
3. 《powerbuilder6.0应用和开发》,清华大学出版社

  • 上一个计算机论文:
  • 下一个计算机论文:
  •  更新时间:
    浅谈泥沙的形成与防治
    浅谈建筑防水工程的施工技术
    浅谈枝桠检集机在森林经营中的应用
    浅谈农机管理的问题与应对策略
    浅谈小流域水土保持的综合治理
    浅谈聚氯乙烯生产工艺
    浅谈合作学习在初中生物学教学中的应用
    浅谈高中语文素质教育实施的必然性和途径
    浅谈低氮燃烧技术及其改造方法
    浅谈服装市场营销课程的改革
    浅谈我国义务教育阶段的“减负”问题
    浅谈小学数学创新思维能力的培养
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    版权所有 www.11665.com © 论文大全网 All rights reserved