`
bolutes
  • 浏览: 863413 次
文章分类
社区版块
存档分类
最新评论

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.小结

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

分享到:
评论

相关推荐

    Visual Basic.NET程序设计

    《Microsoft Visual Basic .NET 程序设计》一书中的练习文件。 SYSTEM REQUIREMENTS =================== 要编译和运行本文件夹的所有练习文件,需要如下配置: - 以下操作系统之一: Microsoft Windows ...

    Visual Basic通用范例开发金典(光盘程序03)

    Visual Basic通用范例开发金典(光盘程序03)

    Visual Basic 网络程序设计

    Visual Basic 网络程序设计 Visual Basic 网络程序设计 Visual Basic 网络程序设计

    Visual Basic通用范例开发金典(光盘程序06)

    Visual Basic通用范例开发金典(光盘程序06)

    Visual Basic 程序设计

    Visual Basic 作为程序设计的入门语言,具有易学易懂的特点。Windows 是当今主流操作系统,而Visual Basic 作为一种支持可视化程序设计的语言,也是开发Windows 应用程序最简单易学的语言之一。 本书是一本全面、...

    Visual Basic通用范例开发金典(光盘程序02)

    Visual Basic通用范例开发金典(光盘程序02)

    Visual Basic6.0程序设计教程(第二版).

    内容包括:Visual Basic 6.0概述,Visual Basic 6.0基本概念及操作、Visual Basic编程基础、窗体的设计、基本控件的使用、对话框的设计、菜单的设计与多文档界面的创建、图形程序设计、文件管理及操作、数据库编程...

    Visual Basic 2008程序设计完全自学教程 2/2

    《Visual Basic 2008 程序设计完全自学教程》详述Visual Basic 2008语言重要语法,并于书中融入165个完整程序范例和大量插图,通过这些简练的示例详解每一个知识点.由浅入深,内容详实。 《Visual Basic 2008 程序...

    Visual Basic.NET程序设计教程(第2版)

    《Visual Basic.NET程序设计教程(第2版)》根据教育部高等学校计算机基础课程教学指导委员会编制的《高等学校计算机基础课程教学基本要求》中有关“程序设计基础”课程教学基本要求编写,为普通高等院校学生将VB...

    Visual Basic程序设计教程

    有用的Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程Visual Basic程序设计教程...

    Visual Basic通用范例开发金典 王加松 源代码

    Visual Basic通用范例开发金典 王加松 源代码 解压后122M 《Visual Basic通用范例开发金典》是各级程序开发人员的必备参考书,同时也非常适合大中专院校师生阅读。此外,《Visual Basic通用范例开发金典》也非常...

    Visual Basic 2005程序设计教程书本PPT

    Visual Basic 2005程序设计教程书本PPT。 本书以Visual Basic 2005为语言背景,结合大量实例,全面细致地介绍了可视化编程的概念和方法。本书建立在学生初学程序设计的基础上,通过对本书的学习可以掌握较好的程序...

    Visual BASIC语言程序设计教学课件.rar

    Visual BASIC语言程序设计教学课件.rar

    Visual Basic.NET程序设计--朱小平 2007

    Visual Basic.NET程序设计--朱小平 2007,教材

    Visual Basic程序设计PPT课件

    Visual Basic程序设计PPT课件 Visual Basic程序设计PPT课件 Visual Basic程序设计PPT课件

    Visual Basic 接口设计与工程实践.part4

    《Visual Basic接口设计与工程实践》全面介绍了如何使用Visual Basic程序语言来设计和测试接口电路。《Visual Basic接口设计与工程实践》分为23章,主要内容包括:VB的集成开发环境、并行端口和串行端口的基本概念与...

    Visual Basic 接口设计与工程实践.part3

    《Visual Basic接口设计与工程实践》全面介绍了如何使用Visual Basic程序语言来设计和测试接口电路。《Visual Basic接口设计与工程实践》分为23章,主要内容包括:VB的集成开发环境、并行端口和串行端口的基本概念与...

    Visual Basic接口设计与工程实践(源码光盘)

    《Visual Basic接口设计与工程实践》全面介绍了如何使用Visual Basic程序语言来设计和测试接口电路。《Visual Basic接口设计与工程实践》分为23章,主要内容包括:VB的集成开发环境、并行端口和串行端口的基本概念与...

Global site tag (gtag.js) - Google Analytics