第6章 水晶数据报表设计_第1页
第6章 水晶数据报表设计_第2页
第6章 水晶数据报表设计_第3页
第6章 水晶数据报表设计_第4页
第6章 水晶数据报表设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6 6章 水晶数据报表设计大纲 水晶报表的数据传递模型 自定义水晶报表模板、报表的输出与打印 带统计图表的报表6.1 6.1 水晶报表概述VB.NET开发应用程序时,经常需要生成报表,一般使用水晶报表实现。水晶报表(Crystal Reports)是一个优秀的报表开发工具,用于处理数据库,帮助用户分析和解释重要信息。水晶报表从1993开始就称为Visual Studio的一部分,并且现在已经称为VS.NET中的标准报表创建工具。Crystal Reports for Visual Studio可以连接到几乎所有的数据源,比如:DataSet。6.1 6.1 水晶报表概述使用水晶报表设计的报表

2、又称为RDLC报表。在VS.NET2005之前,SQL Server Reporting Services中已经提供了一种被称为报表定义语言(Report Definition Language, RDL)的语言;在VS.NET 2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是Report Definition Language的缩写,C代表Client-Side Processing,凸显了它的客户端处理能力。水晶报表具有如下的特点:(1) 具有简单易用的控件,

3、特别是Table控件,非常方便字段在报表上的排列;(2) 灵活的可定制性,用XML来描述一个报表相关数据;(3) 高度可编程性,不需要报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;(4) 导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel。6.1.1 6.1.1 水晶报表数据传递模型6.1.2 6.1.2 使用已有的报表模板默认情况下已有的报表模板在路径“C:Program FilesMicrosoft Visual Studio 版本号Crystal ReportsSampleszh-chsReports”中的Feature Ex

4、amples和General Business目录下(安装的时候,由于设定安装路径的不同,上面的路径会不同,可以利用搜索功能查找模板文件)。这里使用Feature Examples目录下的Hierarchical Grouping.rpt报表模板。使用已有的报表模板案例名称:使用已有的报表模板工程名称:Proj6-1Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dir As String d

5、ir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path + Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + Hierarchical Grouping.rpt End SubEnd Class6.2 6.2 创建自定义报表在数据库应用程序中,不同的数据库需要显示不同的字段,即使是同一数据库,不同的工程需要显示的顺序也是不一样的,所以一般

6、都需要自定义报表。6.2.1 6.2.1 创建报表模板新建基于Windows的工程Proj6-2,在“解决方案管理器”中,右击项目名,在“项目”菜单中选择“新建项”,选择“Crystal报表” 接着弹出对话框“Crystal Reports库” 在选项组“创建新Crystal Report文档”中,有3个选项:1. 使用报表向导:有对话框指导完成报表的创建,并将选择保存到报表设计器中;2. 作为空白报表:对报表不做任何设置;3. 来自于现有的报表:用目前设计好的报表作为模板,重新设计报表。在选项组“选择专家”中包含三种不同的报表专家,可以指导完成特定类型报表的创建工作。有3个选项:1. 标准:

7、指导如何选择数据源和连接数据库表。还可以帮助用户添加字段以及分组、统计、图表以及排序。2. 交叉表:报表中的数据作为交叉表对象显示,并指导自定义格式。3. 邮件标签:允许用户格式化报表,目的是打印在任意尺寸的邮件标签上。分别选择“使用报表向导”和“标准”选项,下一步出现对话框“数据” 对话框“数据”为要创建的报表选择数据源,列表中包括如下的选项:1. 项目数据:显示当前项目的数据源列表和ADO.NET的数据源;2. 当前连接:显示当前连接到数据源的列表;3. 收藏夹:显示“收藏夹”列表中维护的数据源列表。4. 历史记录:显示最新5条使用过的数据源;5. 创建新连接:显示可以创建的所有数据源,取

8、决于安装过程中选定的数据访问组件。在列表中选择“创建新连接”中选择“OLE DB(ADO)”文件夹,对话框“OLE DB(ADO)” 选择“Microsoft OLE DB Provider for SQL Server”并进入下一步,将要连接的数据库信息填写到对话框中。如果连接到本地的SQL Server,则服务器名字为“(local)”,用户名和密 码 分 别 为 “ s a ” 和“sa123”,并选择要连接的数据库为Sales。 单击按钮“完成”返回到“标准报表创建向导”对话框,依次点开文件夹,找到连接的数据,并将表“grade”添加到右边的选定列表中,如图6-8所示 将表“grade

9、”中的所有字段都选中,并添加要显示的字段列表中。下面还有两个配置的窗口,分别是分组和筛选的对话框,因为这里不需要设置,所以都直接跳到最后一步“报表样式”,可选的样式有10个,这里选择“标准”样式。创建好的报表将加载到主窗口中, 默认的报表设计界面包括5部分:1. 报表页眉,设定全部页面的页眉显示样式;2. 页眉,设定当前页的开头的显示样式;3. 详细资料,设定各种数据的显示方式;4. 报表页脚,设置对详细资料中数据统计相关的数据;5. 页脚,设置当前页最后的显示样式。6.2.2 6.2.2 在工程中添加报表模板要在Windows窗体上显示报表,需要添加CrystalReportViewer控件

10、,按照以前的方法,在Form.Load方法中添加控件和报表的连接代码。案例名称:在工程中添加报表模板工程名称:Proj6-2 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dir As String dir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path +

11、Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + CrystalReport1.rpt End Sub为了创建良好的用户体验,需要在程序中添加报表的验证信息。 Imports CrystalDecisions.CrystalReports.EngineImports CrystalDecisions.SharedImports System.CollectionsPublic Class Form1 Private Sub SetDBLogonForReport(ByVal myConnectionInf

12、o As ConnectionInfo) Dim myTableLogOnInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos myTableLogOnInfo.ConnectionInfo = myConnectionInfo Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.Even

13、tArgs) Handles MyBase.Load Dim dir As String dir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path + Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + CrystalReport1.rpt Dim myConnectionInfo As ConnectionInfo = New Conne

14、ctionInfo() myConnectionInfo.ServerName = (local) myConnectionInfo.DatabaseName = sales myConnectionInfo.IntegratedSecurity = False myConnectionInfo.UserID = sa myConnectionInfo.Password = sa123 SetDBLogonForReport(myConnectionInfo) End SubEnd Class6.2.3 6.2.3 报表数据导出与打印水晶报表支持将报表导出的格式包括:1. Adobe Acro

15、bat(.pdf);2. Crystal Reports(.rpt);3. Rich Text Format (.rtf);4. Microsoft Word (.doc);5. Microsoft Excel (.xls);6. HTML 3.2 (.htm);7. HTML 4.0 (.htm)。数据导出有两种模式:1.拉模型。通过指定的数据驱动程序,来进行数据库的连接和提取数据。基本上,不需要开发人员编写代码。2. 推模型。需要开发人员自己编写代码来处理数据库连接,填充DataSet,并传递到报表中。如果后台数据库需要认证,则应提供登录信息,这里需要编写代码来实现;如果后台数据库是Acc

16、ess,则一般不需要提供登陆信息。案例名称:数据导出和打印工程名称:Proj6-3 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CrystalReportViewer1.ExportReport() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Clic

17、k CrystalReportViewer1.PrintReport() End Sub6.3 6.3 带统计图表的报表报告主要的功能是在两个方面1. 方便的数据导出与打印;2. 数据统计与分析功能。水晶报表是目前最强大的统计分析工具之一,利用它可以制作出功能丰富的报表。新建基于Windows的工程Proj6-4,添加建立好的水晶报表:“CrystalReport1.rpt”,同时添加CrystalReportViewer控件,并通过“智能任务”对话框设置“在父容器中停靠”,这样控件就可以正好填充满整个Form窗体,如图6-16所示。6.3 6.3 带统计图表的报表执行结果小结本章介绍了水晶报

18、表的设计与开发。对于水晶报表更深入的学习,可以参考专门的水晶报表制作资料。本章侧重如何在VB.NET中使用水晶报表,介绍了如何使用现有的模板、如何实现报表的导出与打印以及带统计图表的报表的设计方法。习题一、选择题1水晶报表的特点包括_A. 具有简单易用的控件,特别是Table控件,非常方便字段在报表上的排列;B. 灵活的可定制性,用XML来描述一个报表相关数据;C. 高度可编程性,不需要报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;D. 导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel。2. 水晶报表不能导出成哪种类型_A. Adobe Acrobat (.pdf) B. Crystal Reports

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论