210 likes | 441 Views
第九章. Crystal Reports. 回顾. 理解接口的概念 学习如何实现和声明接口 实现 IComparable 接口 使用 IComparable 接口排序列表 实现 IComparer 接口 通过实现 IEnumerator 接口和 IEnumerable 接口对列表添加 For Each 支持 创建继承自 ICollection 接口的自定义接口 理解克隆以及如何实现 ICloneable 接口. 目标. 创建一个空白的 Crystal Reports 使用 CrystalReportViewer 控件预览报表
E N D
第九章 Crystal Reports
回顾 • 理解接口的概念 • 学习如何实现和声明接口 • 实现IComparable接口 • 使用IComparable接口排序列表 • 实现IComparer接口 • 通过实现IEnumerator接口和IEnumerable接口对列表添加For Each支持 • 创建继承自ICollection接口的自定义接口 • 理解克隆以及如何实现ICloneable接口
目标 • 创建一个空白的Crystal Reports • 使用CrystalReportViewer控件预览报表 • 在Crystal Reports上创建域 • 基于多个数据库表创建报表 • 使用控制中断创建表格式报表 • 导出报表 • 配置报表以便动态显示信息
Crystal Reports概述 • 基本知识: • • Crystal Reports是一种报表制作工具,允许开发者使用可视化设计器设计并实现报表; • •使用Crystal Reports Designer设计报表的方法与设计窗体的方法相同。可以在报表上创建控件实例,然后设置控件实例的属性; • •可以用Crystal Reports创建用于桌面或Web的报表; • • Crystal Reports为开发者隐藏了大量的编程逻辑,开发者只需在报表中创建域来定义报表题头、页题头、页注脚、明细行、合计、小计等;
创建报表 • 报表创建方式: • •使用Report Expert创建报表; • •创建一个空白报表; • •从已有报表创建新报表;
创建报表 • 报表的五个部分:
创建报表 • 命名空间: • • CrystalDecisions.CrystalReports.Engine; • • CrystalDecisions.ReportSource; • • CrystalDecisions.Shared;
创建报表 • 报表文件: • •创建空白报表时会生成两个文件:一个是后缀为.rpt的文件,包含报表定义,是二进制文件,还有一个.vb文件,包含VB代码;
通用报表元素 • 两种主要元素: • •报表控件——包含常量信息,如标题或栏头; • •域——包含动态数据和计算数据
通用报表元素 • 报表控件: • • Text Object; • • Line Object; • • Box Object; • 演示创建步聚
通用报表元素 • 数据格式化: • •一般内容; • •格式化货币; • •格式化日期; • 演示
预览报表 • •使用CrystalReportViewer控件预览Crystal Report; • 演示
域 • •使用Field Explorer创建域;
域 • 域分为7类: • •数据库域; • •公式域; • •参数域; • •组名域; • •运行总和域; • •特殊域; • •非绑定域;
域 • 数据库域: • •创建数据库域之前必须先连接报表和数据库; • •首先创建强类型的数据集; • •右击数据库域选择添加/删除数据库功能,将报表和数据库关联起来; • •打开数据库表将字段拖到报表中生成数据库域; • •要使报表能显示数据库中的数据,还必须编写填充数据集的程序; SqlDataAdapter1.Fill(DataSet11) Dim r As New EmployeeReport r.SetDataSource(DataSet11) CrystalReportViewer1.ReportSource = r
域 • 公式域: • •计算公式的值; • •采用公式编辑器编制;
域 • 特殊域: • •完成一些特殊任务的域:如显示页码、当前日期、记录号或者标题等; • •有Print Date、Print Time、Record Number、Page Number、Page N of M、Total Page Count等域;
域 • 控制中断报表(Control Break Report): • •当特定域的值改变时执行特殊处理的报表; • •如处理小计; • 使用组名域创建控制中断;
域 • 运行总和域: • •累计域在特定控制中断中的小计或创建总计; • •有多种聚集函数用来进行计算,如平均值、最大值、最小值、合计等
域 • 参数域: • •允许定义参数来动态地限制报表中显示的行; • •定义和使用参数域包括两步:首先在报表中定义参数域,其次编写代码在运行时填写参数。 Dim pfds As ParameterFieldDefinitions Dim pfd As ParameterFieldDefinition Dim pfdv As ParameterValues Dim pfdvd As ParameterDiscreteValue pfds = r.DataDefinition.ParameterFields pfd = pfds.Item("test") pfdv = pfd.CurrentValues pfdvd = New ParameterDiscreteValue pfdvd.Value = 2 pfdv.Add(pfdvd) pfd.ApplyCurrentValues(pfdv)
导出报表 • •报表对象的ExportOptions属性允许用户将报表导出到Word文档、Excel工作簿、Html文档。 Dim FileName As String = "C:\WDemo.doc" Dim diskOpts As New DiskFileDestinationOptions diskOpts.DiskFileName = FileName Dim r As EmployeeReport = CrystalReportViewer1.ReportSource r.ExportOptions.DestinationOptions = diskOpts r.ExportOptions.ExportFormatType = ExportFormatType.WordForWindows r.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile r.Export()