⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2005511100047.html

📁 毕业论文范文打包 毕业论文范文打包
💻 HTML
📖 第 1 页 / 共 2 页
字号:
  <TR>
    <TD rowSpan=2><A HREF="http://www.mydown.com"><IMG src="http://www.mydown.com/mydown/2004images/a1.gif" border="0"></A></TD>
    <TD></TD>
  </TR>
  <TR colspan="2">
  <TD class=line150><A HREF="http://www.mydown.com/soft/softdown.html">软件下载</A> | <A HREF="http://gamedown.yesky.com/game/index.htm">游戏下载</A> | <A HREF="http://drivers.yesky.com/">天极驱动</A> | <A HREF="http://www.mydown.com/tests/testdown.html">娱乐下载</A> | <A HREF="http://www.mydown.com/code/codedown.html">源码下载</A> | <A HREF="">软件下载</A> | </TD>
  </TR>
  </TBODY>
  </TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=770 align=center border=0>
  <TBODY>
  <TR>
    <TD bgColor=#eeeeee>&nbsp;</TD></TR>
  <TR>
    <TD bgColor=#000000 height=1></TD></TR></TBODY></TABLE>
<TABLE class=line150 cellSpacing=0 cellPadding=0 width=770 align=center 
bgColor=#ffffff border=0>
  <TBODY>
  <TR>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD>
      <DIV class=font20 align=center>VB编程中网格控件的选用及使用方法</DIV></TD></TR>
  <TR>
    <TD>
      <DIV align=center>
      <HR class=font16 align=center width="85%" color=#000000 noShade SIZE=1>
      </DIV></TD></TR>
  <TR>
    <TD>
      <DIV align=center>来源:&nbsp;<A HREF="http://www.hot-door.com">网络收藏夹</A> &nbsp; 2005-5-11 10:00:47</DIV></TD></TR>
  <TR>
    <TD height=5></TD></TR>
  <TR>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD height=5></TD></TR>
  <TR>
    <TD vAlign=top height=284>
      <TABLE class=line150 cellSpacing=0 cellPadding=0 width="85%" align=center 
      border=0>
        <TBODY>
        <TR>
          <TD>内容提要:&nbsp;The&nbsp;software&nbsp;of&nbsp;visual&nbsp;basic&nbsp;developed&nbsp;by&nbsp;Microsoft&nbsp;corporation&nbsp;is&nbsp;becoming&nbsp;one&nbsp;of&nbsp;the&nbsp;main&nbsp;develop&nbsp;tools&nbsp;at&nbsp;today。&nbsp;As&nbsp;it's&nbsp;remarkable&nbsp;peculiarity,&nbsp;the&nbsp;Grid&nbsp;control&nbsp;has&nbsp;very&nbsp;great&nbsp;practical&nbsp;and&nbsp;active&nbsp;use。&nbsp;This&nbsp;topic&nbsp;discusses&nbsp;how&nbsp;to&nbsp;use&nbsp;the&nbsp;grid&nbsp;control&nbsp;of&nbsp;VB&nbsp;to&nbsp;develop&nbsp;pratical&nbsp;software&nbsp;and&nbsp;how&nbsp;to&nbsp;use&nbsp;it&nbsp;conveniently&nbsp;and&nbsp;simply。&nbsp;微软公司的面对对象的程序开发软件VB(Visual&nbsp;Basic)日益成为当前所流行的主流开发工具。作为其显著的特色之一,VB所提供的网格类控件,在实际的数据库管理系统的开发过程中具有很大的实用性和灵活性。本文旨在讨论在使用VB的实际开发过程中,如何有选择的使用VB所提供的网格类控件以及如何方便、简洁的去使用。 
<P></P>
<P>关键词汇:&nbsp;Component-Based&nbsp;Development&nbsp;Virtual&nbsp;Data&nbsp;Management&nbsp;Spread's&nbsp;Calc&nbsp;Engine&nbsp;构件开发&nbsp;虚拟数据管理&nbsp;计算引擎</P>
<P>随着基于构件开发(Component-Based&nbsp;Development)技术的发展,供开发者使用的软件构件越来越多,单就VB中可使用的网格类控件也有许多种。网格类控件常用在数据库管理系统的开发中,用来直观地显示表或视图的二维关系,在对数据的操作上,有些控件也提供了很多便捷的方法。&nbsp;同样是完成这些显示和操作数据的功能,面对各式各样的控件,选择那种来达到目的,成了软件开发者必须考虑的问题。唯有选择了一个好的控件,才能提高开发效率,增强软件的功能,达到事半功倍的效果。&nbsp;下面,本人根据自己长期以来积累的实际经验,总结出以下几点网格控件的选用应考虑的方面:</P>
<P>第一,要考虑控件的实际功能。功能强、接口多的控件可以增强应用软件的质量,也可减少编程工作量,当然,这要结合应用需求来定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好几兆空间,增加了程序的冗余代码。另外,一些功能闲置,灵活性太强也可能导致最终用户不易掌握使用。</P>
<P>第二,控件的稳定性要强。作为应用程序的基石,不应选用那些控件本身容易出错,补丁(patch)太多的版本。</P>
<P>第三,控件的易用性要高。选用那些属性配置合理,事件触发机制明晰流畅,易于设计和使用,项目组中的程序员都容易接受掌握的控件。&nbsp; 以下简要介绍几种网格类控件的特点,以供选用。&nbsp;Grid控件:&nbsp;Grid控件可显示简单的二维表格,不用和数据库直接连接,具有滚动条、行头、列头等特性,运行时可用鼠标调整行列的宽度,可用于浏览数据,若想对数据进行编辑,需结合TextBox控件,或采取其他变通方法。下面所示画面即为日本东京社会调查研究所开发的《要员管理系统》中硬件管理部分的画面。&nbsp;画面中的下部即为Grid控件,定义其名称为GrdHardComp。使用时,要首先在下图所示的属性窗口中定义其行列数,控制条格式,字体大小,填充格式,鼠标模式等特性。&nbsp;然后,可以动态的划分其间距:&nbsp;GrdHardComp.ColWidth(0)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;1&nbsp;/&nbsp;6&nbsp;GrdHardComp.ColWidth(1)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;5&nbsp;/&nbsp;24&nbsp;GrdHardComp.ColWidth(2)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;1&nbsp;/&nbsp;6&nbsp;GrdHardComp.ColWidth(3)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;1&nbsp;/&nbsp;6&nbsp;GrdHardComp.C olWidth(4)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;3&nbsp;/&nbsp;24&nbsp;GrdHardComp.ColWidth(5)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;1&nbsp;/&nbsp;6&nbsp;GrdHardComp.ColWidth(6)&nbsp;=&nbsp;GrdHardComp.Width&nbsp;*&nbsp;1&nbsp;/&nbsp;6&nbsp;Private&nbsp;Hards()&nbsp;As&nbsp;M_Hard&nbsp;定义其标题:&nbsp;GrdHardComp.Row&nbsp;=&nbsp;0&nbsp;'&nbsp;GrdHardComp.Col&nbsp;=&nbsp;0&nbsp;GrdHardComp.FixedAlignment(GrdHardComp.Col)&nbsp;=&nbsp;2&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"构成番号"&nbsp;GrdHardComp.Col&nbsp;=&nbsp;1&nbsp;GrdHardComp.FixedAlignment(GrdHardComp.Col)&nbsp;=&nbsp;2&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"构成机器区分"①&nbsp;…&nbsp;…&nbsp;在数据向Grid中写入或取出时,为了便于大量的数据同时,简便地写入与修改,可以定义一个类型。如下:&nbsp;Type&nbsp;M_Hard&nbsp;Number&nbsp;As&nbsp;String&nbsp;OrderNum&nbsp;As&nbsp;String&nbsp;MachKind&nbsp;As&nbsp;String&nbsp;MachKindName&nbsp;As&nbsp;String&nbsp;…&nbsp;…&nbsp;End&nbsp;Type&nbsp;(其中Number等均为要输入的图示条目)&nbsp; ;Private&nbsp;Hards()&nbsp;As&nbsp;M_Hard&nbsp;Hards(),此时就作为数据的传输变量,进行Grid与TextBox之间的数据传输。&nbsp;数据向类内写入:&nbsp;If&nbsp;HardComp.RecordCount&nbsp;&gt;&nbsp;0&nbsp;Then&nbsp;HardComp.MoveFirst&nbsp;Do&nbsp;Until&nbsp;HardComp.EOF&nbsp;ReDim&nbsp;Preserve&nbsp;Hards(H%)//&nbsp;H%为记数变量。&nbsp;Hards(H%).OrderNum&nbsp;=&nbsp;HardComp![&nbsp;OrderNum]//输入编号&nbsp;Hards(H%).MachKind&nbsp;=&nbsp;HardComp![&nbsp;MachKind]//种类&nbsp;Hards(H%).MachKindName&nbsp;=&nbsp;HardComp![&nbsp;MachKindName]//分类名&nbsp;Hards(H%).MachName&nbsp;=&nbsp;HardComp![&nbsp;MachName]//名称&nbsp;…&nbsp;…&nbsp;loop&nbsp;HardComp.MoveFirst&nbsp;类内数据向Grid内写入:&nbsp;GrdHardComp.Row&nbsp;=&nbsp;H%&nbsp;+&nbsp;1//记录数统计&nbsp;GrdHardComp.Col&nbsp;=&nbsp;0&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"&nbsp;"&nbsp;&amp;&nbsp;Hards(H%).OrderNum&nbsp;GrdHardComp.Col&nbsp;=&nbsp;1&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"&nbsp;"&nbsp;&amp;&nbsp;Hards(H%).MachKind&nbsp;GrdHardComp.Col&nbsp;=&nbsp;2&amp;nb sp;GrdHardComp.Text&nbsp;=&nbsp;"&nbsp;"&nbsp;&amp;&nbsp;Hards(H%).MachKindName&nbsp;GrdHardComp.Col&nbsp;=&nbsp;3&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"&nbsp;"&nbsp;&amp;&nbsp;Hards(H%).MachName&nbsp;GrdHardComp.Col&nbsp;=&nbsp;4&nbsp;…&nbsp;…&nbsp;GrdHardComp.Text&nbsp;=&nbsp;"&nbsp;"&nbsp;&amp;&nbsp;Hards(H%).HardLastDate&nbsp;GrdHardComp.Rows&nbsp;=&nbsp;GrdHardComp.Rows&nbsp;+&nbsp;1//行数加1&nbsp;HardComp.MoveNext&nbsp;H%&nbsp;=&nbsp;H%&nbsp;+&nbsp;1&nbsp;当然,如果使数据真正写入数据库,还需进行数据库的读写操作。Grid只是提供了一个预览的功能,便于数据的修改。&nbsp;由以上Grid的特点及其使用方法可以看出,在需要对数据库进行大量数据的操作时,为了减少对数据库的直接操作,提高数据库的安全性,使用Grid控件,还是有很大方便的。&nbsp;Grid是VB在早期版本中就带有的控件,使用简便,稳定性好,在早期的VB开发过程中,使用尤其广泛。但现在与其它控件比较起来功能有些不足。&nbsp;DBGrid控件:&nbsp;DBGrid是专用来操作数据库的网格控件,可以绑定到Data控件,几乎不用写代码就可方便地对数据进行显示,增加、删除或修改记录, DBGrid具有OnAddNew、BeforeDelete等事件,可在增加新记录或删除修改时对数据进行有效性检验,来实现事务处理功能。DBGrid也可以在设计时编辑网格格式,指定显示字段等,由于它提供了Column、Split、SelBookmarks等对象,更增强了显示和操作数据的能力。&nbsp;下面是笔者所参与开发的东京社会调查研究所的项目--《健康诊断系统》的一个实例。&nbsp;图中的Data4控件把数据库和DBGrid直接连起来,DBGrid的题目,项目设置可以在属性窗口里直接做到。在使用时,要注意新数据是先更新数据库,然后才回写到DBGrid里。方法如下:&nbsp;Sql&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;表名"&nbsp;//SQL语句&nbsp;Set&nbsp;Data4.Recordset&nbsp;=&nbsp;MyDB2.OpenRecordset(sSql,&nbsp;dbOpenSnapshot)&nbsp;Data4.Refresh&nbsp;或:&nbsp;DatMonthPlan.RecordSource&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;表名WHERE&nbsp;(((关键字)='"&nbsp;&amp;&nbsp;Key&nbsp;&amp;&nbsp;"'));&nbsp;如果想对DBGrid中的某个条目进行复制,方法如下:&nbsp;Data4.Recordset.AddNew&nbsp;Data4.Recordset![&nbsp;关键字]&nbsp;=&nbsp;Key//关键字索引&nbsp;Data4.Recordset![记号]=&nbsp;D BGrid.Columns(0).CellValue(DBGrid.GetBookmark(0))//第一列&nbsp;Data4.Recordset[番号]=DBGrid.Columns(1).CellValue(DBGrid.GetBookmark(0))//&nbsp;第二列&nbsp;Data4.Recordset![氏名]=DBGrid.Columns(2).CellValue(DBGrid.GetBookmark(0))//第三列&nbsp;Data4.Recordset.Update&nbsp;Data4.Refresh//数据库更新&nbsp;DBGrid.Refresh//&nbsp;DBGrid刷新&nbsp;如果动态的对DBGrid中的某个栏目进行增减,可以用如下方法:&nbsp;i&nbsp;=&nbsp;1&nbsp;//总显示列数记数&nbsp;Data4.MoveFirst&nbsp;Do&nbsp;Until&nbsp;Data4.EOF&nbsp;DBGrid1.Columns(i).Width&nbsp;=&nbsp;1600&nbsp;//定义宽度&nbsp;DBGrid1.Columns(i).Caption&nbsp;=&nbsp;"年龄"&nbsp;//标题&nbsp;DBGrid1.Columns(i).DataField&nbsp;=&nbsp;"&amp;&nbsp;实际数据域&nbsp;&amp;"&nbsp;DBGrid1.Columns(i).Visible&nbsp;=&nbsp;True&nbsp;//可见性&nbsp;DBGrid1.Columns(i).Alignment&nbsp;=&nbsp;1&nbsp;//DBGrid&nbsp;控件列中的值的对齐方式&nbsp;Data4.MoveNext&nbsp;i&nbsp;=&nbsp;i&nbsp;+&nbsp;1&nbsp;If&nbsp;i&nbsp;&gt;&nbsp;8&nbsp;Then&nbsp;Exit&nbsp;Do//列数最大为8&nbsp;Loop&nbsp;由于具有良好的可靠性,灵活性和直观性,所以DBGrid控件现在被广泛使用。但不足之处在于DBGrid,和直接操作数据库,对数据库的正确性有一定的威胁。改进方法是,在修改数据库时,加入提示信息。&nbsp;True&nbsp;DBGrid:&nbsp;DBGrid是Apex软件公司为微软开发的,而Apex的True&nbsp;DBGrid控件也具有较强的数据显示及处理功能,因与DBGrid同出一宗,所以两者有很多相同点。在基本功能上,DBGrid的增,减等操作方法可直接用于True&nbsp;DBGrid,在这里就不再赘述。但在DBGrid的基础上,True&nbsp;DBGrid可以直接嵌入ListBox、Image位图、单选框等控件(如图所示),使软件的界面更加美观,实用。&nbsp;SSDBGrid控件:&nbsp; SSDBGrid来自Sheridan软件系统公司<IMG src="http://www.51lw.com/article/img/url.gif" align=absMiddle> <A href="http://www.shersoft.com/" target=_blank><FONT color=#0000ff>http://www.shersoft.com</FONT></A> ),与Sheridan的其它控件一样,以漂亮的三维界面见长,SSDBGrid还可与其它数据库控件如SSDBData、SSDBCombo等有机结合,为用户处理数据提供方便,它有几百个属性、方法等接口,为界面的润色提供了很大的选择余地。另外SSDBGrid还具有虚拟数据管理(virtual&nbsp;data&nbsp;management)技术,在内存中只存贮需显示在界面上的记录,这样在处理大量数据时不致耗费系统资源而影响运行速度。SSDBGrid的缺点只是在有些版本中输入汉字时会出现一些乱码,但显示汉字的效果很不错。&nbsp;MSFlexGrid控件:&nbsp;  MSFlexGrid和vsFlexArray在显示数据方面有很多独到之处,在运行中可通过拖放来交换各列的位置,动态地对数据进行排序、分组合并等。vsFlexArray控件是VideoSoft公司(www.videosoft.com)的产品,MSFlexGrid的部分技术也来自此公司。&nbsp;vaSpread控件:&nbsp;  vaSpread控件在处理数据方面有着更大的灵活性,它支持数据绑定,虚拟数据管理等技术,而且具备了电子表格的功能,编辑中可以使用剪贴板来剪切或复制单元格区域的数据,单元格中也可以加入公式,借助Spread的计算引擎(Spread's&nbsp;Calc&nbsp;Engine)对数据进行分析计算。Spread&nbsp;Designer还可方便地设计表格的格式,在单元格中加入按钮、图片、组合框等,自己设计的表格格式还能作为模板与数据分开来保存。若想得到简单的报表,vaSpread的打印功能可直接把界面和数据打印出来,而不需通过专门的报表打印控件。vaSpread是FarPointTechnologies公司的产品,网址为&nbsp;<IMG src="http://www.51lw.com/article/img/url.gif" align=absMiddle> <A href="http://www.fpoint.com/" target=_blank><FONT color=#0000ff>http://www.fpoint.com</FONT></A> 。&nbsp;Formula&nbsp;One控件:&nbsp;Formula&nbsp;One有更强的数据处理功能,是与Excel兼容的电子表格控件,在PowerBuilder中经常用到,它来自Sybase下属的Visual&nbsp;components公司,网<IMG src="http://www.51lw.com/article/img/url.gif" align=absMiddle> <A href="http://www.visualcomp.com/" target=_blank><FONT color=#0000ff>http://www.visualcomp.com</FONT></A> 。l另外,PowerBuilder中,常用子窗口--Database&nbsp;Windows&nbsp;的形式来显示数据库的构成。如下图,至于其使用方法,这里就不再赘述了。&nbsp;参考文献:&nbsp;1.&nbsp;微软公司《VB部件工具》,1997年版&nbsp;2.&nbsp;True&nbsp;DBGrid&nbsp;4.0d&nbsp;"Hondo"&nbsp;(Build&nbsp;4.0.0130,&nbsp;dated&nbsp;10/16/96).&nbsp;3.&nbsp;《PowerBuilder6.0应用与开发》,清华大学出版社</P></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD>&nbsp;</TD></TR>
  <TR>
    <TD>&nbsp;</TD></TR></TBODY></TABLE>
<TABLE style="BORDER-TOP: #cccccc 1px solid" cellSpacing=0 cellPadding=0 
width=770 align=center bgColor=#ffffff border=0 class=line150>
  <TBODY>
  <TR><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
  <TR bgcolor="#e8e8e8"><TD align=center>天极源码下载同步更新</TD><TD align=center>天极娱乐下载同步更新</TD></TR>
  <TR>
    <TD>
     <DIV align=center>
     <iframe frameborder="0" src="http://www.mydown.com/mydown/include/newcode.html" scrolling="no" width="100%"></iframe>
	 </DIV>
	 </TD>
	 <TD align=center>
	 <DIV align=center>
     <iframe frameborder="0" src="http://www.mydown.com/mydown/include/newtests.html" scrolling="no" width="100%"></iframe>
	 </DIV>
	 </TD>
	 
	 </TR>
	 <TR><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
	 </TBODY></TABLE>
	 <script language="Javascript">document.write("<img src='http://counter.yesky.com/counter.shtml?CID=21009&AID=0&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+"' border='0' alt='' width='0' height='0'>");</script>
  <noscript><img src="http://counter.yesky.com/counter.shtml?CID=21009&AID=0&refer=noscriptcounter&cur=noscriptcounter" border='0' width='0' height='0'/></noscript>
	 
	 </BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -