《水晶报表基础知识及应用.pptx》由会员分享,可在线阅读,更多相关《水晶报表基础知识及应用.pptx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第1414章章 水晶报表水晶报表14.1 水晶报表基础知识水晶报表基础知识14.2 在在Windows应用程序中使用水晶报表应用程序中使用水晶报表14.3 在在VS2005网站中使用水晶报表网站中使用水晶报表2 本章主要内容本章主要内容: 水晶报表的分类水晶报表的分类 嵌入式水晶报表设计器嵌入式水晶报表设计器 水晶报表对象模型水晶报表对象模型 在在Windows应用程序中使用水晶报表应用程序中使用水晶报表 在在VS2005网站中使用水晶报表网站中使用水晶报表 314.1 水晶报表基础知识水晶报表基础知识 14.1.1 水晶报表的分类水晶报表的分类u 从外观分:从外观分:标准报表、交叉表和邮
2、件标签。标准报表、交叉表和邮件标签。 u 从分发形式分:从分发形式分:嵌入式报表和非嵌入式报表。嵌入式报表和非嵌入式报表。 414.1.1 水晶报表的分类水晶报表的分类(续续) 嵌入式报表和非嵌入式报表嵌入式报表和非嵌入式报表不同点:不同点:嵌入式报表具有与嵌入式报表具有与.rpt文件对应的文件对应的同名包装类同名包装类,直接通过代码与包,直接通过代码与包装类进行交互,而不是与原始报表文件本身进行交互。非嵌入式报表装类进行交互,而不是与原始报表文件本身进行交互。非嵌入式报表则则单独以单独以.rpt文件形式文件形式存在报表,该报表不包含在项目内,也没有对存在报表,该报表不包含在项目内,也没有对应
3、的报表包装类。应的报表包装类。 对于嵌入式报表,系统对项目进行编译时,与其他项目资源一样,对于嵌入式报表,系统对项目进行编译时,与其他项目资源一样,报表和其包装类都会被报表和其包装类都会被自动嵌入到程序集中自动嵌入到程序集中,用户看不到被包装后,用户看不到被包装后的的.rpt文件。对于非嵌入式报表,如果是文件。对于非嵌入式报表,如果是ASP.NET网站,要求该网站,要求该.rpt文件保存在文件保存在网站根目录下网站根目录下,如果是,如果是Windows应用程序则要求分发应用程序则要求分发后后.rpt文件保存在文件保存在和和.exe文件相同的目录下文件相同的目录下。 对于嵌入式报表,如果修改了报
4、表内容,必须对于嵌入式报表,如果修改了报表内容,必须重新编译重新编译整个项目。整个项目。非嵌入式报表修改了报表内容,不须重新编译整个项目。非嵌入式报表修改了报表内容,不须重新编译整个项目。514.1.2 嵌入式水晶报表设计器嵌入式水晶报表设计器 在嵌入式水晶报表设计器内,可以直接通过在嵌入式水晶报表设计器内,可以直接通过拖放拖放方式将一个方式将一个报表对象报表对象(如数据库字段或文本对象)拖(如数据库字段或文本对象)拖动到设计器上,然后使用动到设计器上,然后使用“属性属性”窗口或快捷菜单格窗口或快捷菜单格式化该对象;可以定义报表的式化该对象;可以定义报表的数据源数据源,选择要使用的,选择要使用
5、的数据记录并对其进行数据记录并对其进行分组分组,设置报表对象的,设置报表对象的格式及布格式及布局局。614.1.3 报表节报表节 1) 报表页眉报表页眉 报表页眉节中的对象只在报表开头显示一次,一般在该节中报表页眉节中的对象只在报表开头显示一次,一般在该节中放置希望只在整个报表开头出现的信息。放置希望只在整个报表开头出现的信息。 2) 页眉页眉 保存在页眉中的对象在每页的顶部位置都会显示。保存在页眉中的对象在每页的顶部位置都会显示。 3) 详细资料详细资料 保存在详细资料中的对象在每条记录中都会显示。保存在详细资料中的对象在每条记录中都会显示。 4) 报表页脚报表页脚 报表页脚节中的对象只在报
6、表的结束显示一次,一般在该节报表页脚节中的对象只在报表的结束显示一次,一般在该节中放置希望只在整个报表结尾出现的信息。中放置希望只在整个报表结尾出现的信息。 5) 页脚页脚 保存在页脚中的对象在每页的底部都会显示。保存在页脚中的对象在每页的底部都会显示。 6) 组页眉和组页脚组页眉和组页脚 组页眉和组页脚中的对象分别显示在每个新组的开始位置和组页眉和组页脚中的对象分别显示在每个新组的开始位置和结束位置。结束位置。 714.1.4 水晶报表对象模型水晶报表对象模型对象模型是指构成编程模型的核心类及其周围类。对象模型是指构成编程模型的核心类及其周围类。分类:分类:u CrystalReportVi
7、ewer对象模型对象模型u ReportDocument对象模型对象模型u ReportClientDocument对象模型对象模型u InfoObject对象模型对象模型 814.1.4 水晶报表对象模型水晶报表对象模型(续续)1. CrystalReportViewer对象模型 CrystalReportViewer控件包含可用于控制该控件如何控件包含可用于控制该控件如何显示报表的属性和方法,以及少量的与绑定到该控件的报显示报表的属性和方法,以及少量的与绑定到该控件的报表进行交互的属性和方法。这些属性和方法构成了一个功表进行交互的属性和方法。这些属性和方法构成了一个功能有限的能有限的Cry
8、stalReportViewer对象模型。对象模型。 CrystalReportViewer控件仅用于控制报表显示的形式,控件仅用于控制报表显示的形式,比如控制显示缩放比例等。而要与报表内部进行交互,则比如控制显示缩放比例等。而要与报表内部进行交互,则应该使用封装后的其他对象模型。即尽量不要使用应该使用封装后的其他对象模型。即尽量不要使用CrystalReportViewer对象提供的属性和方法与报表内部进对象提供的属性和方法与报表内部进行交互。行交互。914.1.4 水晶报表对象模型水晶报表对象模型(续续)2. ReportDocument对象模型 ReportDocument对象模型比对象
9、模型比CrystalReportViewer功能多、范围广功能多、范围广。该对象模型提供了在代码中处理报表。该对象模型提供了在代码中处理报表的各种能力。的各种能力。 在在VS2005中创建水晶报表文件中创建水晶报表文件.rpt,完成报表设计,完成报表设计后,选择主菜单的后,选择主菜单的【生成生成】【生成解决方案生成解决方案】,系统,系统会自动创建一个会自动创建一个ReportDocument对象模型,在工具箱中对象模型,在工具箱中即可以看到自动生成的与报表即可以看到自动生成的与报表同名同名的组件,将该组件拖的组件,将该组件拖放到设计窗体后,即得到放到设计窗体后,即得到实例实例,使用该实例的属性
10、完成,使用该实例的属性完成对报表结构及报表内部数据的各种控制。对报表结构及报表内部数据的各种控制。 1014.1.4 水晶报表对象模型水晶报表对象模型(续续) 实例的实例的属性属性完成对报表结构及报表内部数据的各种完成对报表结构及报表内部数据的各种控制。例如:控制。例如: 1) ReportDefinition属性属性 获取获取ReportDefinition对象,该对象对应于报对象,该对象对应于报表设计器中的布局。表设计器中的布局。 2) DataDefinition属性属性 获取获取DataDefinition对象,该对象对应于报表对象,该对象对应于报表设计器中的字段资源管理器。设计器中的
11、字段资源管理器。 1114.1.4 水晶报表对象模型水晶报表对象模型(续续) 3) SummaryInfo属性属性 获取获取SummaryInfo对象,可以通过该对象设置报表主对象,可以通过该对象设置报表主题等。例如:题等。例如:studentReport1.SummaryInfo.ReportTitle = 学生情况表学生情况表; 该行代码的意思是设置报表标题为该行代码的意思是设置报表标题为“学生情况表学生情况表”。 4) RecordSelectionFormula属性属性 获取或设置记录选定公式,用于筛选指定的记录。获取或设置记录选定公式,用于筛选指定的记录。例如:例如:studentR
12、eport1.RecordSelectionFormula = MyTable2.姓名姓名 like *王王*; 该行代码的意思是匹配该行代码的意思是匹配MyTable2中所有姓名中包含中所有姓名中包含“王王”的的记录。记录。1214.1.5 将将ADO.NET数据集作为报表数据源数据集作为报表数据源 使用使用VS2005的的ADO.NET数据集设计器,既数据集设计器,既可以从多种数据源(包括可以从多种数据源(包括Access、Oracle和和SQL Server数据库)创建数据库)创建ADO.NET数据集,也可以数据集,也可以灵活、方便地控制报表的输出。灵活、方便地控制报表的输出。 1314
13、.2 在在Windows应用程序中使用水晶报表应用程序中使用水晶报表 【例例14-1】设计一个水晶报表,输出例设计一个水晶报表,输出例8-1创建的创建的MyDatabase数据库中数据库中MyTable2的所有数据。的所有数据。 14 【例例14-2】设计一个水晶报表,显示第设计一个水晶报表,显示第8章章介绍的介绍的MyDatabase.mdf数据库中的学生情数据库中的学生情况,要求报表每页显示一个学生的信息,况,要求报表每页显示一个学生的信息,包括基本情况、家庭成员等。并能够在程包括基本情况、家庭成员等。并能够在程序中指定查询条件。序中指定查询条件。 1514.3 在在VS2005网站中使用水晶报表网站中使用水晶报表 VS2005网站中只能使用非嵌入式水晶报表,网站中只能使用非嵌入式水晶报表,因此与因此与Windows应用程序中使用嵌入式水晶报表相应用程序中使用嵌入式水晶报表相比,设计和调用上均有些区别。比,设计和调用上均有些区别。 【例例14-3】在在Default.aspx页面上,用水晶报表的形页面上,用水晶报表的形式显示式显示MyDatabase.mdf中表中表MyTable2的所有数据。的所有数据。
限制150内