文史论文 教育论文 医学论文 农学论文 艺术论文 英语论文 行政论文 法律论文 管理论文 理工论文 经济论文 常用资料
热 门 点 击  
·以社会主义荣辱观引领思想道德
·胡锦涛提出关于“八个为荣、八
·“八荣八耻”先从青少年抓起 
·中学美术教学中人体艺术欣赏初
·儿童联想变形画系列稿之二:变
·美术教育本质的研究
·利用投影培养幼儿在绘画中的想
·浅谈美术技能训练中的智力开发
·变形画及观察与思维
·民间美术造型
·试论美育的经济功能
·新加坡法制建设的经验与启示
·论法律与经验
·法律职业化发展的法社会学思考
·试论我国古代中央对地方的监察
·论法律的外在权威与内在权威
·论法学的核心范畴和基本范畴
·功能与变迁:中国乡土社会的法
·租约仲裁条款并入提单
·依法治国近期研究述要
·试述马克思市民社会理论中的法
·美国特殊保障措施第一案
·鱼糜加工生产工艺的改进
·冷冻鱼糜生产工艺的改进
·中国水产业大盘点
·论“三个代表”的理论基础 
·“三个代表”思想与《共产党宣
·“三个代表”思想的三维意义结
·理想信念的丰富与发展——兼论
·“三个代表”的人格向度
您现在的位置: 首页 >>> 理工论文 >>> 计算机与信息技术论文 >>> 正文
Visual Basic6.0下数据库报表制作技巧
作者:    来源:

在运用Visual Basic编制MIS系统前台程序时,往往会需要处理大量的报表。而这些报表的制作,在Visual Basic6.0出现之前,要么需要使用Print语句编写大量程序代码,要么选择诸如Seagate等第三方公司所提供的诸如Data Report等软件,而一旦真正使用这些没有本地化的软件或控件,程序员往往会遇到各种各样令人头疼不已的问题棗或者是中文字体显示有所限制,或者是报表数据无法动态及时更新,或者所提供的数据处理或统计功能并不怎么适用。所幸的是,MicroSoft推出的Visual Basic6.0专业版和企业版中包含一个全新的组件棗Data Report Designer (DRD),运用这个报表设计器,我们可以将报表与数据环境对象或者是ActiveX数据对象直接关联,使得Visual Basic6.0下的报表设计效率得到空前提高。下面,就本人在运用DRD进行报表程序设计所获得的心得与大家共同探讨一下。

 

 

一 将DRD与DED(Data Enviroment Designer)结合。

 


这是运用DRD解决Visual Basic6.0报表处理最常用的一种方法,在Samples中有一个名为Prjnwind工程就是专门介绍如何使用结合使用DRDDED的例子程序。我们可以通过选择新工程中的Data Project类型就可以自动增加一个空的DEDDRD实例到Project explorer中,打开一个空DataReport实例将禁止工具栏中的General 窗体并在工具栏底添加一个DataReort按钮。如下图:

 

可以看到,DataReport的专用控件棗RptLabelRptTextBoxRptImageRptLineRptShapeRptFunction。除了RptFunction,每个Rpt控件都可以在固有Visual Basic工具面板中找到对应的控件。当然,控件所代表的功能并不完全一样,例如RptTextBox在报表运行实例中完全没有输入焦点,实际上,它实现的是对报表(DataReport)的细节区(Detail)报表数据内容的具体显示。我们可以通过DEDDRD创建一个报表,具体操作如下:

 

  1. 打开一个新的数据工程项目。

  2. DataEnviroment1中设定其Connection1属性,连接到某个数据源。

  3. DataEnviroment1中添加一个新命令棗Command1,设定好其属性。

     

  4. 选择DataReport1,在页标头区加入一个Rptlabel控件,输入报表标题。

    5.选择DataReport1,在细节区加入一个RptTextBox控件,并将DataReport1的DataSource属性设为DataEnvironment1,DataReport1的Command属性设定为Command1,RptTextBox的Command属性设定为Command1,DataField属性设定为Author。

  5. 增加一个Command控件,在Click事件中加入如下代码:

    Private Sub Command1_Click()

    Dim rpt1 As New DataReport1

    rpt1.Show 1

    End Sub


  6. 运行该程序,点击Command按钮将显示报表。

 

实际应用中,我们可以将DataEnviroment与分层Recordset绑定,从而实现更加复杂和具有统计功能的数据报表,分层Recordset在许多VisualBasic参考书中有述,大家可以自行查阅。

 

 

 

二 将DRD直接与ADO绑定。

 

这种方法是实现报表数据及时动态显示一种最为有效的方法。很多的时候,我们要求不退出应用程序而要求报表能显示数据的变动。这时,采用上述的方法或其它第三方软件都是无法做到的。这时,用print语句编写大量代码是一种令大多数VB程序员烦恼的事情,但是,我们可以通过将DRD绑定到某个ADO数据对象来得以实现。

 


  1. 建立一个新的标准工程。
  2. 添加一个Data Report实例。

     

  3. 添加一个ADO数据控件并实例化。

  4. 设定ADO数据控件的属性,将其连接到某个数据库。

  5. 添加一个DataGrid控件并实例化,绑定到所选择数据库的某个表或SQL查询结果。(这一步非常关键,因为如果不将ADO数据源绑定到该DataGrid的话,数据的更新很难马上响应。)

  6. 增加一个按钮并在Click事件中加入如下代码:

    Private Sub Command1_Click()

    Dim rpt1 As New DataReport1

    Set rpt1.DataSource = Adodc1

    rpt1.Show 1

    End Sub

  7. DataReport1的细节区增加两个RptTextBox,并分别将其DataField属性设定为AuthorAu_ID

  8. 运行程序,当改变DataGrid1控件中的Author值时,点击Command1按钮所显示的报表中的Author字段的值也会相应改变。

 

 

实际上,在这里我们是将需要显示的报表内容强行与某个Datagrid控件绑定,从而实现数据的及时更新。

由上面的操作可以看到,使用Visual Basic6.0所含的DRD组件,使得报表的制作处理变得轻松自如,当然,目前DRD中仍然有不尽人意的地方棗属性和事件太少,控制不够灵活,甚至还存在有一些Bugs,但是,我们相信,随着DRD的不断成熟,它的使用将更为方便,功能也将更加强大。

(附言:请作者将姓名、单位、通信地址及有关信息告知编辑部)

疯狂学习网 免费论文站 www.crazystudy.com

所有资料均来源于网络,如您认为某些文章不妥,请告知我们crazystudy@sohu.com