本章内容<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
6-1 水晶报表技术简介
6-2 水晶报表的主要功能
6-3 水晶报表的执行模式
本章将重点介绍“水晶报表”(Crystal Report),其主要功能是以报表的形式表现数据。通过对报表文件中的页眉、页脚以及详细资料区域的设置,获得与实际业务纸质报表相同格式的电子报表,并在Windwos应用程序或Web应用程序中输出这些由计算机产生的统计分析数据。
u本章的学习目标:
n理解水晶报表的作用和优点
n使用水晶报表专家创建水晶报表
n理解水晶报表的推拉模式设计
n在窗体中使用水晶报表和报表绑定
n学习水晶报表与数据库的综合复杂开发
6-1 水晶报表简介
在很多企业日常运营业务中,经常会出现一些报表业务处理,如某部门的薪金详细信息报表就属于财务报表的一种,这些报表的输出要求有一定的规格制式,数据的处理要求符合业务逻辑的要求。如表6-1所示为某部门的薪资表
姓名 |
部门 |
职位 |
薪金 |
Allen John |
技术部 |
分析员 |
10000 |
David Blake |
销售部 |
销售员 |
3500 |
Jack Turner |
办公室 |
行政人员 |
4200 |
BinaryReader |
办公室 |
行政人员 |
4200 |
Mark Lee |
销售部 |
经理 |
12000 |
Chan Cho |
销售部 |
销售员 |
3500 |
Susan Jones |
办公室 |
行政人员 |
4200 |
Scott William |
销售部 |
销售员 |
3500 |
Adam Johns |
销售部 |
销售员 |
3500 |
表6-1 部门薪资表
如果转换成为按照员工所在的部门进行薪资统计工作(如表6-2所示),那么有关人员就需要手动计算每个部门的总薪金,依次填写统计后的数据。这种方式的缺点是准确性地,数据容易受到人为因素影响。
姓名 |
部门 |
职位 |
统计薪金 |
Susan Jones |
办公室 |
行政人员 |
24600 |
Jack Turner |
行政人员 | ||
BinaryReader |
行政人员 | ||
Mark Lee |
销售部 |
经理 |
26000 |
Chan Cho |
销售员 | ||
David Blake |
销售员 | ||
Scott William |
销售员 | ||
Adam Johns |
销售员 | ||
Allen John |
技术部 |
分析员 |
10000 |
表6-2 部门薪资统计表
水晶报表出现的目的,就是使得计算机参与到办公系统业务流程中,使得电子水晶报表变为格式化且有条理的数据记录表示方式。
水晶报表可以由很多的方法得到,其中一个就是使用VS.Net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用VS.Net开发.Net程序,那么你就不需要再安装其它软件了,因为水晶报表已经内嵌在VS.Net中了。
1.水晶报表的优点
VS.Net水晶报表有下面一些主要的优点:
n 快速的报表开发;
n 能够导出成为复杂的交互性图表;
n 可以与其它控件一起在WebForm中使用;
n 能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式;
2.水晶报表主要控件
VS.Net水晶报表的主要控件包括以下四个:
(1)水晶报表引擎(Crystal Report Engine (CREngine.dll))
通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。也正是因为报告引擎的作用,才可以将Asp.Net中的水晶报表转换成为普通HTML格式水晶报表设计器(Crystal Report Designer (CRDesigner.dll))。水晶报表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。
(2).rpt报表文件
执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。
(3)Data Source
.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
(4)水晶报表查看控件
水晶报表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))是一个WinForm控件,可以将它看成是一个在WinForm页面中存放报表的容器。
6-2 水晶报表的基本操作
6-2-1 水晶报表的基本功能
水晶报表的主要功能可以包括四个方面的内容:
1.借助交互式界面更加容易地创建报表
VS2005有专门的水晶报表设计工具(如图6-1),在工具箱的Crystal Reports中,我们可以看到水晶报表主要有两个基本控件:CrystalReportViewer和ReportDocument,分别表示水晶报表浏览器控件和水晶报表设计控件。通过这两个常用控件,我们可以很轻松的完成报表的创建工作。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

图6-1 工具箱中的Crystal Reports控件集合
2. 运行时数据的自定义功能
水晶报表不仅仅可以对于来自数据库的单表数据进行定制式的显示,同时可以允许对复杂的数据来源(如存储过程数据,视图数据,分布式数据)进行特定的设计工作,具有非常强大的数据表现能力。同时其界面设计方便,适用于不同报表格式的开发设计。
3.水晶报表的主要特性和结构
(1)水晶报表的主要特性包括以下几个方面:
n快速的报表开发
n能够导出成为复杂的交互性图表
n可以与其它控件一起在WebForm中使用
n能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式
(2)水晶报表的基本结构
水晶报表的基本结构主要有水晶报表引擎(Crystal Report Engine (CREngine.dll))和水晶报表设计器(Crystal Report Designer (CRDesigner.dll))共同构成。(如图6-2所示)
水晶报表引擎以水晶报表浏览器样式呈现,通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。也正是因为水晶报表引擎的作用,才可以将水晶报表转换成为.pdf,.doc,xls,html,rtf等多种格式。
水晶报表文件就是在水晶报表设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。

图6-2 Crystal Reports的基本结构
6-2-2 案例学习:打开并查看水晶报表文件
本次实验目标是通过打开一个RPT文件,将水晶报表显示在水晶报表查看器之内。
u实验步骤1:
新建一个WinForm窗体,从工具箱的Crystal Reports中拖放一个CrystalReportViewer控件到窗体上,再放置一个Button控件用来打开一个RPT(报表文件)文件,该RPT文件将在CrystalReportViewer控件内显示出来。基本界面如图6-3所示。

图6-3 WinForm中使用水晶报表查看器设计界面
u实验步骤2:
用鼠标双击Button控件,进入Button控件的鼠标单击事件编码,并键入如下代码:
private void button1_Click(object sender, System.EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();//建立一个打开文件对话框对象
dlg.Title = "打开水晶报表文件";//命名该打开文件对话框对象标题
dlg.Filter = "水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";
//命名该打开文件对话框对象打开文件类型只能够是rpt类型的文件
if (dlg.ShowDialog() == DialogResult.OK)
{
//如果打开文件对话框用户选择确定
crystalReportViewer1.ReportSource = dlg.FileName;
//则将该RPT文件作为水晶报表浏览器的浏览文件
}
} |
转载于:https://blog.51cto.com/qianshao/231836