`
sogotobj
  • 浏览: 648597 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Visual Basic通用报表设计小结

阅读更多

Visual Basic通用报表设计小结

本文对vb设计报表的方法作了一个小结,大家都知道,在VB平台下制作报表大致有两种选择:使用VB自带的Data Report控件和借助第三方软件。其中第三方软件比较著名的就是MS Excel和Seagate公司的CrystalReporter,以下就这三个方案进行详细的讨论。


  1. Data Report控件

  1.1 Data Report控件使用方法

  由于是VB自带的控件,所以使用相对比较方便。使用方法是:首先在"工程"菜单下面选择"添加Data report"选项,这样Data Report控件就选入到了应用程序。

  使用Data report的情况大多数采用数据绑定的模式,也就是将此控件与数据库的数据表绑定起来以便可以不用编写代码就轻松完成报表的设计。要使用数据绑定就必须要指定数据源,这里的数据源不是数据控件而是数据环境(Data Environment),选择"工程"菜单下面选择"添加Data Environment"选项就可以将数据环境添加进应用程序中。数据环境有两个重要的属性:Connection 和Command属性,前者是连接指定的数据库,后者连接指定的数据表,一旦这两者都设置成功之后,就可以把数据环境作为数据源了。只需要把Data report的DataSource属性设置为前面的数据环境对象以及把DataMember设置为数据环境对象的Command对象即可。

  1.2 Data Report控件界面元素

  完成了Data report控件的数据绑定工作之后就可以直接控制报表的制作与显示了。这里首先熟悉一下Data report控件的显示界面:

  Data report控件一共有5个区组成,分别是报表头、页面头、细节区、页面注脚和报表注脚。报表头和报表注脚是用分别用于整个报表的最上部和最下部,它们将出现于整个报表的每一页,可以放置一些报表名称,时间之类的固定文本;页面头和页面注脚只能出现在当前页的最上部和最下部,也就是说它只能出现在当前页中,不出现在其他页面中,可以放置随页面变化的一些量比如页码等;而细节区就是用来进行实际显示的区域,它是我们最为关心的区域,通过在此区域内放置显示控件可以控制报表的实际显示输出。这里介绍一下放置文本框控件的使用方法,其实在绑定情况下只需要设置其DataMember和Datafield即可,前者用来指定数据表,可以设置为前面数据环境对象的Command对象,后者是指定数据段,即绑定的数据库的指定字段。这样不需要编写任何代码就可以实现报表的显示工作。

  1.3 Data Report控件的打印功能

  对于报表的打印可以直接使用Data report自带的打印功能,即可以实现简易的报表打印。不过为了实现比较复杂的打印功能,也可以通过程序控制的方法来进行。这里只是给出一个实现思路:首先需要制作一个按钮控件来显示"打印设置"的窗口,通过这个窗口用户可以设置打印的相关的参数,然后在实现打印的子模块中使用VB内嵌的printer对象来实现真实的打印,该对象能够对打印的当前位置进行定位,而且对打印的字体等参数进行控制,所以结合"打印设置"窗口可以实现类似于word里面的打印功能。
2.MS Excel

  说起报表设计应用程序,无意微软的Excel是一支独秀,MS Excel就是用来进行表格和报表设计用的应用程序,它具有优秀的方格控制和宏代码定制功能。所以如果在设计自己的应用程序的时候能够结合到Excel的话,那么你的应用程序就应该是相当的完善了,因为无论是编辑还是打印功能,Excel都提供了很完美的解决方案,所以你的应用程序所要做的事情就是实现程序和Excel通讯即可。

  事实上,可以使用VBscript可以将VB与Excel两者连接起来。以下就简要介绍在VB下开发基于Excel的编程思路。

  在VB中处理Excel的对象大致分为五个:Application对象、WorkBook对象、WorkSheet对象、Range对象以及Cell对象。它们的功能分别如下:

  Application---------用来指代整个应用程序。

  WorkBook----------表示工作簿对象

  WorkSheet---------表示工作表对象,注意,一个工作簿可以包含多个工作表,它们就类似于多文档中的框架窗口和里面的单个视图一样。

  Range-------------表示工作表中的某个区域范围对象,特殊情况下也可以只代表一个Cell。

  Cell---------------表示特定工作表的一个单元格对象。这个对象的使用频率是最高的。

  清楚了以上的五个对象的应用范围,那么使用它们就很简单了,不过在使用这些对象之前,首先需要对它们进行声明。方法是在"工程"的"引用"对话框之下选择"Microsoft Excel9.0 Object Library",这样就将整个Excel对象库就引入到程序中来了。

  下面举一个示例,其实现的功能是打开一个工作簿。

Function OpenBook(strFilePath As String) As Boolean
' This procedure checks to see if the workbook
' specified in the strFilePath argument is open.
' If it is open, the workbook is activated. If it is
' not open, the procedure opens it.
Dim wkbCurrent As Excel.Workbook
Dim strBookName As String

On Error GoTo OpenBook_Err
' Determine the name portion of the strFilePath argument.
strBookName = NameFromPath(strFilePath)
If Len(strBookName) = 0 Then Exit Function
If Workbooks.Count >0 Then
For Each wkbCurrent In Workbooks
If UCase$(wkbCurrent.Name) = UCase$(strBookName) Then
wkbCurrent.Activate
Exit Function
End If
Next wkbCurrent
End If
Workbooks.Open strBookName
OpenBook = True
OpenBook_End:
Exit Function
OpenBook_Err:
OpenBook = False
Resume OpenBook_End
End Function

3.Crystal Reporter(水晶报表)

  做为一个优秀的报表软件,水晶报表是实际应用中最多的方案。在这一节里主要介绍一下水晶报表的定制和显示,打印功能的实现。

  首先要区分Crystal Reports插件程序和Crystal Reports控件。前者主要用来创建报表模板,后者主要是用来在程序中显示和打印报表,这两者的分工决定了它们程序中的功能的不同。

  其中Crystal Reports的插件程序可以从Seagate公司的官方网站上下载最新的测试版本。

  3.1 Crystal Reports插件程序的使用

  选择"外接程序"菜单的"报表设计器"选项,则VB将执行Crystal Reports Pro插件应用程序。在Crystal Reports Pro里选择"新建报表"图标,可以选择8标准模板和一个自定义的模板来开始报表工程。

  整个水晶报表的使用跟第一节的Data Report的使用很类似。首先需要给报表选择数据源,(即数据库),然后就可以在报表中添加、删除、修改字段以及为记录分组,可以利用水晶报表创建很多具有自定义风格的报表。由于本身Crystal Reports插件程序就是一个功能强大的报表设计软件,这里就不能一一的讲解了,有兴趣可以参考程序自带的帮助文档。

  3.2 Crystal Reports控件的背景知识

  Crystal Reports Pro还提供一个报表生成模块,该模块可以连接到并访问VB应用程序,VB程序员不需花费大量时间写自己的代码就可再应用程序中添加复杂的报表生成及输出功能。

  Crystal Reports引擎是一个动态链接库,它可以使应用程序访问并具有同Crystal Reports 一样强大的报表输出功能。应用程序是通过Crystal Reports ActiveX控件来访问引擎。再编译时应用程序同报表引擎链接,以给应用程序添加了生成报表的功能。

  当程序使用Crystal Reports ActiveX控件时,可以通过再设计时设置Crystal对象属性或者再运行时改变对象属性,来建立应用程序和Crystal Reports之间的连接。通过Crystal控件的属性可以指定:

   响应应用程序某个事件的输出报表的名字。

   报表的目标位置(预览窗口、磁盘文件或者电子邮件等)。

   想要打印的份数(如果报表提交给打印机的话)。

   输出文件的信息。

   预览窗口的大小及位置信息(如果报表在预览窗口中显示时)。

   选择公式信息(如果在报表中限制记录的话)。

   排序信息。

   其他相关的属性。

  这里要注意一点的是,Crystal控件必须在由Crystal Reports Pro创建的报表中使用,而试图在VB应用程序里引用之前,必须首先创建报表。

  3.3 Crystal Reports控件的使用

  了解了Crystal Reports控件的功能,那么就可以使用它了。首先通过"工程"的"部件"选项里面选择"Crystal Reports Control",那么VB的工具箱里面就添加了Crystal Reports控件了。

  注意,对于Crystal Reports控件的最重要的属性就是ReportFileName了,把它设置为前面已经在Crystal Reports Pro里定制好的报表模板的文件路径。那么只需要调用控件的PrintReport方法就可以将报表显示出来了。

  相对于Data Report控件来说,Crystal Reports控件的功能更加的完善,报表预览,打印,编辑修改等功能都很完善,所以在实际的报表应用设计方案中,使用Crystal Reports的相对较多。然而Crystal Reports控件也有它的局限性,即它不能在运行时创建自定义的窗口。可以使用控件的数据绑定属性来创建数据绑定报表,但是报表本身的格式都是由Crystal Reports控件内部进行处理的。一般说来,Crystal Reports控件不提供在程序中对报表字段级的访问。这一缺陷可以通过设计出足够多的报表来弥补。

  4.其他方法

  除了通过上述的三种方法来实现报表设计以外,当然也可以直接利用Win32 API来进行直接进行设计,这种方式是最为灵活也是最为繁琐的方式,因为所有的编辑、修改、打印等功能都是由程序控制,所以一般情况下不会使用这样的方式来处理,这里就不介绍了。

  5.小结

  报表设计是程序员经常要遇到的问题,本文主要介绍目前主流的报表设计方案,由于所涉及到的知识点比较多,限于篇幅,在这里只是作了简要的介绍,希望可以起到抛砖引玉的作用。

注:本文来自http://dev.csdn.net/article/83860.shtm
分享到:
评论

相关推荐

    Visual Basic2005数据库项目案例导航

    总结来说,这本书为读者提供了一个全面的指南,从基本的界面设计原则到实用的编程模块,再到完整的系统实现案例,内容丰富详实,旨在帮助开发者有效地使用Visual Basic 2005进行高质量的数据库应用程序开发。...

    VBasic.Net编写一个通用报表组件

    ### VBasic.Net编写一个通用报表组件 #### 一、引言 在软件开发过程中,数据报表的生成是一项常见且重要的任务。大多数开发语言虽然提供了基本的报表工具支持,但这些工具往往局限于固定的报表格式,缺乏灵活性,...

    K3Price.rar_Windows编程_Visual_Basic_

    总结起来,这个项目利用Visual Basic进行Windows平台的开发,设计了一个能够批量修改价格并具有通用查询功能的K3插件。项目包括了数据库权限设置、用户界面、数据过滤、报表生成等多个方面的内容,展现了VB在企业级...

    VB通用药品公司进销售存管理系统设计(源代码+系统).zip

    标题"VB通用药品公司进销售存管理系统设计(源代码+系统)"指出这是一个基于Visual Basic(VB)开发的,适用于药品行业的全面进销存管理系统的项目。这个系统不仅包含了完整的源代码,还提供了运行系统,使得用户可以...

    VB 开发VB高校通用排课管理系统设计(论文+源代码).rar

    《VB高校通用排课管理系统设计》是一份详细阐述如何利用Visual Basic(VB)进行系统开发的资源包,其中包含了论文和源代码两部分。这个管理系统是针对高等教育机构设计的,旨在优化并自动化课程安排过程,提高教学...

    通用数据表格打印.rar_报表打印_表格 打印

    标题中的“通用数据表格打印.rar_报表打印_表格 打印”表明这是一个关于数据表格打印的资源包,可能包含用于生成和打印二维数据的控件或软件组件。这个压缩包可能是一个开发工具,帮助程序员或者数据分析人员将...

    采集单片机存储记录并生成报表

    在本项目中,我们需要实现一个功能,即“采集单片机存储记录并生成报表”,这个过程涉及了多个技术领域,包括编程语言VB(Visual Basic)、单片机通信以及数据库管理系统ACCESS。 首先,VB是一种面向对象的编程语言...

    数据库课程设计资料全.doc

    在这个过程中,学生需要利用VB(Visual Basic)作为前端开发工具,SQL SERVER作为后端数据库管理系统,进行系统分析、程序设计、上机调试和维护工作。 设计目标在于提升学生的实际操作能力和创新意识,同时也注重...

    精彩编程与编程技巧-VB通用数据表格输出程序的设计...

    然而,在使用诸如Crystal Reports之类的报表工具时,虽然它们提供了良好的报表设计和输出功能,但在某些特定情况下可能无法满足复杂的数据处理需求。因此,本文将深入探讨如何利用VB5来设计一个通用的数据表格输出...

    个人理财分析系统设计与实现论文.doc

    关键词包括:数据库、ADO、Visual Basic和理财,这四者构成了系统设计的核心技术领域。 总结来说,这篇论文详细介绍了一个个人理财分析系统的设计和实现过程,涵盖了需求分析、系统设计、编程实现、数据库操作和...

    EXCEL_VBA编程教程

    - **子集关系**:VBA是Visual Basic的一个子集,但专为应用程序自动化设计。 - **寄生性**:VBA依赖于其所在的应用程序,比如Excel或Word。 4. **区别于Visual Basic**: - **目的不同**:Visual Basic用于创建...

    DTII(A)型带式输送机CAD数据库系统的开发.pdf

    总结来说,DTII(A)型带式输送机CAD数据库系统的开发是一个集成计算机辅助设计技术、数据库技术与编程技术的复杂过程。通过该系统的开发,能够实现带式输送机设计的自动化和效率化,对于相关行业具有重要的应用价值和...

    章-Access模块和应用程序设计(与“模块”有关文档共34张).pptx

    Access模块和应用程序设计是数据库管理系统Access的重要组成部分,它涉及到使用VBA(Visual Basic for Applications)进行编程,以实现更高级的功能和定制化操作。在Access中,模块是存储和组织VBA代码的主要方式,...

    VB、SQL2000、OPC在高炉槽下报表中的应用.pdf

    传统的生产模式逐渐被先进的技术所取代,其中以Visual Basic (VB)、SQL Server 2000数据库(SQL2000)、以及OPC(OLE for Process Control)技术结合的方式制作的高炉槽下报表成为了制作报表的流行方式。 槽下报表...

    ACESS2003 通用版下载地址

    Access 2003还支持VBA(Visual Basic for Applications),这是一种内置的编程语言,允许用户编写自定义函数和模块,进一步扩展软件的功能。通过VBA,用户可以创建复杂的业务逻辑,实现数据验证、自动化工作流,甚至...

    vb.rar_vb access_vb 库存

    VB(Visual Basic)作为微软推出的编程语言,以其简单易学、功能强大的特点深受程序员喜爱,而Access则是微软提供的关系型数据库管理软件,以其易用性和灵活性在中小型企业中广泛应用。本文将详细探讨如何利用VB与...

    人事管理系统课程设计报告.docx

    通过本项目的学习和实践,不仅加深了对人事管理系统设计理念的理解,还掌握了Visual Basic和SQL Server 2000等关键技术的使用技巧。此外,该项目也为今后从事相关领域工作的学生提供了宝贵的实践经验和技术积累。

    vb操作EXCEL表的常用方法总结.doc

    EXCEL提供一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右2键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。其中,EXCEL有两...

Global site tag (gtag.js) - Google Analytics