2024年4月3日发(作者:)

维普资讯

2006年第6期 福建 电脑 65 

Crystal Reports及其在.Net中的应用 

郭囝文 

(浙江万里学院浙江宁波315100) 

【摘要】:介绍了Crystal Report的作用、相关技术特点厦其工作原理,并用实例说明了如何在.Net中使用Crystla Report 

【关键词】:Crystla Report;。Net;4t-口;组件 

1.前言 

有灵活的Java、COM和.NET应用开发接13,配合赠送的不同版 

ystal Enterprise(Embedded,Express),可将报表与企业Web 

随着因内商用企业管理软件的逐渐成熟.数据的收集和管 

本Cr

理变得越来越重要.但是随着时间的流逝.所收集的数据本身可 

应用紧密集成在一起.并通过其零客户端浏览器控件为最终用 

能会变得毫无川处。它们需要被组织或者总结出来,才能够为僻 

理人员所用。所以.一个有效的数据分析工具显得格外重要,它 

可以帮助企业确认数据的有效性.并指导决策者作出正确的决 

策.BusineS8 Objects的Crystal Reports软件就是一个这样的工 

具.它实现了技术和业务的脱离.让不懂技术的业务人员也能方 

便的汇总不同的业务数据.形成汇总分析报表.满足领导的决策 

分析的需要 Crystal Reports软件在应用上得到了用户的普遍认 

可。 

户提L业丰富的报表交互、创建和修改功能。毋庸置疑.Crystla 

Reports的功能.不仅为操作人员提供了方便.也为企业决策提 

供了便捷。例如:对于企业的销售和营销管理,Crystla Reports可 

以准确地显示哪些产品带来最大的利润:对于业务管理,它能直 

观地反映哪些用户付款不及时:对于财务来说.可以简单地显示 

出哪个部门的加权差旅费最高:在人力资源方面,它可以告诉管 

理者哪些因素影响了员工的保有率:在生产方面.则可显示出哪 

些供应商的原料质量最好 

3.Crystal Reports在.Net中的应用 2.Crystal Reports的特点 

Crystla Reports是高效搬表系统的业界标准.可从任何数据 

来源创建丰富、交互式的内容。并将它集成到应用程序。通过开 

发简单灵活的设计环境技术并充分使用Web的优势.实现快速 

和交互式的报表系统 Crystla Rep0ns可根据管理体制和业务需 

求的改变.对相应报表格式和内容的进行改变 它允许用户按需 

自定义统计查询条件,能够自定义报表输出模板.实现报表的灵 

活、高效。无论是从开发人员还是从最终用户.Crystla Reports都 

可以满足所有的报表要求.使用户能够充分利用现有IT投资. 

并用Java、.NET或COM技术和现有应用程序相集成。 

在报表当中。数据的表现形式是非常重要的一个环节. 

Crystla Rep0rts可供选择的数据展现方式有百种之多.包括各种 

图表、地图、交叉表以及超链接等等.以强化报表的表现力。仅图 

形表现形式就有圆饼图、长条图等16种,还可选择数据放置在 

报表上的位置及次序。Crystla Reports有很多现成的格式可以套 

Hj,同时还可以有弹性地处理更多的其它情况.因为在标准的功 

能外。Crystla Reports提供了超过160种预定义公式.满足个性 

化的设计需求 

报表制作的易刚性是基本要求。在基本的数据输出或者是 

格式修改上,Crystal Reports能轻易地改变成所需要的格式.诸 

如字形、颜色和大小、荧光笔功能等等。在格式部分.Crystal 

Reports提供了复制格式.如同Office中的格式刷.可将字段的格 

式复制到其它字段上 模板套用是另一项简化格式及报表风格 

的工具,其原理类似PoWerPoint的模板文件,可将用户定义好的 

字形、颜色或数字日期等样式迅速套用至另一报表上。其它如数 

据排序、数据分组、数据筛选以及小计等功能.都只需通过简单 

设定即可轻松完成。所以对于一般的报表.只了解Ofifce软件的 

人员都可应用自如 

通过一系列的功能和机制实现对报表的方便查看与交互. 

Crystal Reports能够实现通过门户、微软Office文档和无线设备 

对报表的访问、导航和交互功能.具有强大的报表查看与输出功 

能ll Cr1ystal Reports可以让最终用户能够对报表中的数据进行 

搜索并导出。在导出的格式中.Crystal Reports支持Adobe 

Acrobat的PDF格式。Word的DOC格式,Excel的XLS格式。以 

及纯文本的TXT文件格式或HTML及XML档案格式。 

Crystal Reports拥有强大的数据技术优势.包括五大类数十 

种数据源驱动.可访问几乎所有XML、OLAP、关系型数据,还可 

以通过C0M或JavaBean开发专用数据接口 。Crystal Reports带 

Microsoft.NET平台是一个建立在开放互联网络协议标准之 

上.采用新的工具和服务来满足人们的计算和通信需求的革命 

性的新型XML Web智能计算服务平台。它允许应用程序在因特 

网上方便、快捷地互相通信.而不必关心使用何种操作系统和编 

程语言。从技术层面来说.Microsoft.NET平台主要包括两个内 

核,即通用语言运行时(Common Language Runtime,简称CLR)和 

Microsoft.NEl'框架类库.它们为Microsoft.NET平台的实现提供 

底层技术支持 

Crystla Reports已内嵌为微软Visual Studio.NET的标准报 

表工具,同时升级到Crystla Reports for Visual Studio.NET。它提 

供了非常丰富的模型以使我们能够在运行时操作属性和方法。 

它的优点是: 

1.在.NET平台能够轻松创建交互式的、高质量显现的报表 

内容.这也是Crystal Reports长期以来所具有的主要优势; 

2.使用Crystla Reports for Visual Studio.NET.可以在Web 

平台和Windows平台上承载报表.井将Crystl报表作为报表 a

Web服务在Web服务器上发布: 

3.利用Crystla Report创建的Web应用程序.使用户可以 

深化图表并根据需要筛选信息。在.NET中.图表实际上就是一 

个与应用程序中其他控件进行交互的Crystl报表。a 

4.能够导出成为复杂的交互性图表.可以与其它控件一起 

在WebForm中使用,动态地将报表导出成为.pdf,.doc,xls,html,rtf 

等多种格式 

在.Net中建立一个包含Crystal Repot的Web应用.需要 r

下列组件: 

客户端:仅需要一个可以访问嵌人aspx页面报表的游览 

器就可以了 

服务器需要包含的程序模块: 

1.Crystla Report引辈(Crystal Report Engine(CREngine. 

dl1))。通过它可以完成一些任务,如在报告文件中合并数据,转 

换报告为其它格式等。也正是 为报告引擎的作用,才可以将 

Asp.Net中的Crystla Report转换成为普通HTML格式。 

2.Crystl Repaort设计器(Crystl Reporat Designer(CRDesign— 

er.dU))。Crystal Report就是在设计器中创建的,在设计器中你可 

以设计标题。插人数据。公式。图表,子报表等。 

3..rDt报表文件。执行报表中的第一步就是在Crystla 

Report设计器接口创建此报表.在默认安装中微软已经提供了 

维普资讯

福 建 电 脑 2006年第6期 

些现成的.rDt例子。 

private void buttonl

Click(object sender,System.EventArgs e) 

4.Data Source。.rpt文件取得数据库的方法取决于你方法的 

{ 

选择,你能选择让Crystal Report自己选择数据而不使用任何代 

try 

码或者也可以选择手动的组装DataSet。然后再将其传送到报表 

{ 

文件。 

f(openFileDialogI.ShowDiahg0=--DialogResuh.OK) 

this.erystalReportViewer1.ReportSource=@openFileDia- 

5.Crystal Report查看控件(Crystal Report Viewer web form 

log1.FileName; 

Control(CRWebFormViewer.dl1))。Crystal Report查看控件是 

,,加载Crystal Report.将报表文件绑定到 

个WebFonn控件.可以将它看成是一个在.aspx页面中存放报 

CrystalReportView控件 

表的容器。注意:在一些复杂的操作中.报表服务器与web服务 

l 

器可能不在同一物理主机上.Web服务器将HrrI-P请求传送到 

c8tch(Exception emr】{ 

报表服务器上去。Crystal Report也可以当做WebService来执 

MessageBox.Show(error.ToString0,"错误”); 

行。 

l 

1 

Crystal Repoa读取数据可以使用下面的两种方法实现: 5.按Ctrl+F5运行。运行结果如图2所示。 

1.Pull模式:被请求时。Crystla Report直接根据指定的驱动 

5.小结 

连接数据库然后组装这些数据 实践证明.Crystal Reports是Windows平台上报表制作的不 

2.Push模式:此时开发表不得不自己编写代码连接数据并 二选择。通过在Visual Studio中内置相关的对象与操作接口, 

组装DataSet,同时将它传送至报表。在些这种情况下.通过使用 Crystal Reports已成为报表制作不可或缺的重要组件。展现出相 

连接共享以及限制记录集合的大小。可以使用报表性能最大化。 当大的灵活性与报表制作的威力。 

Crystta Report设计器可以直接加入报表到工程中.也能够 

使用独立的报表对象。 

1.Strongly—typed报表:将报表文件加入到项目中去时.它 

就变成了一个了“strongly—tyPed“报表。在这种情况下.就可以直 

接创建报表的对象了.从而可以减少一些代码并且能够提高一 

些性能。 

2.Un—Typed报表:这里的报表并不直接包含在项目中.因 

此称为‘BB—typed’报表。在这种情况下.就不得不使用Crysml 

Repoa的“ReportDocuemt”对象建立一个实例.并且“手动”地凋 

用报表。 

4.设计步骤 

1.软件环境:要求系统已安装ViBual Studio.Net集成开发 

系统。仪装有.Net Framework SDK不能实现本例效果.因为.Net 

Framework SDK没有Crystla Report控件 

2.新建一个Visual C#项目Windows应用程序.设置 

图I程序初始界面 

Form1的Text=”Crystla Report浏览器”.StartPosiifon=Center- 

Screen。//程序开始出现在屏幕中央,其它属性均保持默认; 

3.从工具箱拖人一个CrystalReportViewer。一个Button。一 

个openFileDilaog.到窗体。 整个设计器的窗体布局只需将 

button1置于窗体底边中部。不再需要其它多余布局。 

设置er,jstatReportViewert的属性如下i 

this.eD'stalReportViewerI.Dock=System.Windows.Forms.DockStyle.Fill; 

/,停靠方式为充满整个窗体 

/,展开+DockPdrldinE 

this.crystalReportViewerI.DoekPadding.Bottom=50: 

/,底部空出放置Butt0n的区域 

this.erystalReportViewerI.DockPadding.Left=5: 

this.erystalReportViewerI.DockPadding+Right 5: 

this,erystalReportViewer1.DockPadding.Top=5: 

this.e ̄stalReportViewed.ReportSoume=null; 

,/先不载入报表资源 

设置buttonl的属性如下! 

this.button1.Anchor#System.Windows.F 

囤2程序运行界面 

//与窗体的下边保持固定 

this.button1.Text=’’打开报表’’: 

参考文献: 

oponFileDialogl是打开文件的控件,设置其属性如下: 

this.openFileDialog1.Filter=”crys Report(’.rp ’.rpII所有文件(’.’)I・. ; 

1.GeorgePeck Crystal P.eports 9水晶报袁设计与开发大全李行武施 

,/提供打开文件对话框的文件类型.默认类型就是此字符串的最前一种定 

妍然译北京:清华大学出版社。2004 

义的类型this.openFileDialogI.Title=”打开Cwstal Report”://打开文件对话框的 

2.Care McCoy水晶报表Crystal Kepom 9从入n到精通冯华英译北 

标题 

京:电干工业出版社.2003 

布局效果如图1所示。(如图1所示) 

3.David McAmi¥Crystal Keporm for vis Smdio.NET高级蝙程李 

万红王军译北京:清华大学出版社。2003 

4.双击buttonl,添加buttonl

Click点击事件: