第6章 水晶数据报表设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章水晶数据报表设计大纲◎水晶报表的数据传递模型◎自定义水晶报表模板、报表的输出与打印◎带统计图表的报表6.1水晶报表概述VB.NET开发应用程序时,经常需要生成报表,一般使用水晶报表实现。水晶报表(CrystalReports)是一个优秀的报表开发工具,用于处理数据库,帮助用户分析和解释重要信息。水晶报表从1993开始就称为VisualStudio的一部分,并且现在已经称为VS.NET中的标准报表创建工具。CrystalReportsforVisualStudio可以连接到几乎所有的数据源,比如:DataSet。6.1水晶报表概述使用水晶报表设计的报表又称为RDLC报表。在VS.NET2005之前,SQLServerReportingServices中已经提供了一种被称为报表定义语言(ReportDefinitionLanguage,RDL)的语言;在VS.NET2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是ReportDefinitionLanguage的缩写,C代表Client-SideProcessing,凸显了它的客户端处理能力。水晶报表具有如下的特点:(1)具有简单易用的控件,特别是Table控件,非常方便字段在报表上的排列;(2)灵活的可定制性,用XML来描述一个报表相关数据;(3)高度可编程性,不需要报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;(4)导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel。6.1.1水晶报表数据传递模型客户DataSourceCrystalReportViewerBuildingSourceDataSetDataAdapterXML数据库传统数据源RDLC文件数据源ADO.net6.1.2使用已有的报表模板默认情况下已有的报表模板在路径“C:\ProgramFiles\MicrosoftVisualStudio版本号\CrystalReports\Samples\zh-chs\Reports”中的FeatureExamples和GeneralBusiness目录下(安装的时候,由于设定安装路径的不同,上面的路径会不同,可以利用搜索功能查找模板文件)。这里使用FeatureExamples目录下的HierarchicalGrouping.rpt报表模板。使用已有的报表模板案例名称:使用已有的报表模板工程名称:Proj6-1PublicClassForm1PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimdirAsStringdir=System.Environment.CurrentDirectoryDimpath=dir.Substring(0,dir.LastIndexOf(\)-3)'MessageBox.Show(path+HierarchicalGrouping.rpt)CrystalReportViewer1.ReportSource=path+HierarchicalGrouping.rptEndSubEndClass6.2创建自定义报表在数据库应用程序中,不同的数据库需要显示不同的字段,即使是同一数据库,不同的工程需要显示的顺序也是不一样的,所以一般都需要自定义报表。6.2.1创建报表模板新建基于Windows的工程Proj6-2,在“解决方案管理器”中,右击项目名,在“项目”菜单中选择“新建项”,选择“Crystal报表”接着弹出对话框“CrystalReports库”在选项组“创建新CrystalReport文档”中,有3个选项:1.使用报表向导:有对话框指导完成报表的创建,并将选择保存到报表设计器中;2.作为空白报表:对报表不做任何设置;3.来自于现有的报表:用目前设计好的报表作为模板,重新设计报表。在选项组“选择专家”中包含三种不同的报表专家,可以指导完成特定类型报表的创建工作。有3个选项:1.标准:指导如何选择数据源和连接数据库表。还可以帮助用户添加字段以及分组、统计、图表以及排序。2.交叉表:报表中的数据作为交叉表对象显示,并指导自定义格式。3.邮件标签:允许用户格式化报表,目的是打印在任意尺寸的邮件标签上。分别选择“使用报表向导”和“标准”选项,下一步出现对话框“数据”对话框“数据”为要创建的报表选择数据源,列表中包括如下的选项:1.项目数据:显示当前项目的数据源列表和ADO.NET的数据源;2.当前连接:显示当前连接到数据源的列表;3.收藏夹:显示“收藏夹”列表中维护的数据源列表。4.历史记录:显示最新5条使用过的数据源;5.创建新连接:显示可以创建的所有数据源,取决于安装过程中选定的数据访问组件。在列表中选择“创建新连接”中选择“OLEDB(ADO)”文件夹,对话框“OLEDB(ADO)”选择“MicrosoftOLEDBProviderforSQLServer”并进入下一步,将要连接的数据库信息填写到对话框中。如果连接到本地的SQLServer,则服务器名字为“(local)”,用户名和密码分别为“sa”和“sa123”,并选择要连接的数据库为Sales。单击按钮“完成”返回到“标准报表创建向导”对话框,依次点开文件夹,找到连接的数据,并将表“grade”添加到右边的选定列表中,如图6-8所示将表“grade”中的所有字段都选中,并添加要显示的字段列表中。下面还有两个配置的窗口,分别是分组和筛选的对话框,因为这里不需要设置,所以都直接跳到最后一步“报表样式”,可选的样式有10个,这里选择“标准”样式。创建好的报表将加载到主窗口中,默认的报表设计界面包括5部分:1.报表页眉,设定全部页面的页眉显示样式;2.页眉,设定当前页的开头的显示样式;3.详细资料,设定各种数据的显示方式;4.报表页脚,设置对详细资料中数据统计相关的数据;5.页脚,设置当前页最后的显示样式。6.2.2在工程中添加报表模板要在Windows窗体上显示报表,需要添加CrystalReportViewer控件,按照以前的方法,在Form.Load方法中添加控件和报表的连接代码。案例名称:在工程中添加报表模板工程名称:Proj6-2PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimdirAsStringdir=System.Environment.CurrentDirectoryDimpath=dir.Substring(0,dir.LastIndexOf(\)-3)'MessageBox.Show(path+HierarchicalGrouping.rpt)CrystalReportViewer1.ReportSource=path+CrystalReport1.rptEndSub为了创建良好的用户体验,需要在程序中添加报表的验证信息。ImportsCrystalDecisions.CrystalReports.EngineImportsCrystalDecisions.SharedImportsSystem.CollectionsPublicClassForm1PrivateSubSetDBLogonForReport(ByValmyConnectionInfoAsConnectionInfo)DimmyTableLogOnInfosAsTableLogOnInfos=CrystalReportViewer1.LogOnInfoForEachmyTableLogOnInfoAsTableLogOnInfoInmyTableLogOnInfosmyTableLogOnInfo.ConnectionInfo=myConnectionInfoNextEndSubPrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadDimdirAsStringdir=System.Environment.CurrentDirectoryDimpath=dir.Substring(0,dir.LastIndexOf(\)-3)'MessageBox.Show(path+HierarchicalGrouping.rpt)CrystalReportViewer1.ReportSource=path+CrystalReport1.rptDimmyConnectionInfoAsConnectionInfo=NewConnectionInfo()myConnectionInfo.ServerName=(local)myConnectionInfo.DatabaseName=salesmyConnectionInfo.IntegratedSecurity=FalsemyConnectionInfo.UserID=samyConnectionInfo.Password=sa123SetDBLogonForReport(myConnectionInfo)EndSubEndClass6.2.3报表数据导出与打印水晶报表支持将报表导出的格式包括:1.AdobeAcrobat(.pdf);2.CrystalReports(.rpt);3.RichTextFormat(.rtf);4.MicrosoftWord(.doc);5.MicrosoftExcel(.xls);6.HTML3.2(.htm);7.HTML4.0(.htm)。数据导出有两种模式:1.拉模型。通过指定的数据驱动程序,来进行数据库的连接和提取数据。基本上,不需要开发人员编写代码。2.推模型。需要开发人员自己编写代码来处理数据库连接,填充DataSet,并传递到报表中。如果后台数据库需要认证,则应提供登录信息,这里需要编写代码来实现;如果后台数据库是Access,则一般不需要提供登陆信息。案例名称:数据导出和打印工程名称:Proj6-3PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickCrystalReportViewer1.ExportReport()EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickCrystalReportViewer1.PrintReport()EndSub6.3带统计图表的报表报告主要的功能是在两个方面1.方便的数据导出与打印;2.数据统计与分析功能。水晶报表是目前最强大的统计分析工具之一,利用它可以制作出功能丰富的报表。新建基于Windows的工程Proj6-4,添加建立好的水晶报表:“CrystalReport1.rpt”,同时添加CrystalReportViewer控件,并通过“智能任务”对话框设置“在父容器中停靠”,这样控件就可以正好填充满整个Form窗体,如图6-16所示。6.3带统计图表的报表执行结果小结本章介绍了水晶报表的设计与开发。对于水晶报表更深入的学习,可以参考专门的水晶报表制作资料。本章侧重如何在VB.NET中使用水晶报表,介绍了如何使用现有的模板、如何实现报表的导出与打印以及带统计图表的报表的设计方法。习题一、选择题1.水晶报表的特点包括______A.具有简单易用的控件,特别是Table控件,非常方便字段在报表上

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功