ASP.NET中水晶报表的使用

asp.net|水晶报表

在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。一周以后,在阅读了大量的“HOWTO”文档之后,我们成功地将一些简单的报告加入到了我们的Asp.net程序中,并得到了一些小决窍。
  这篇文章教你如何在.Net Web应用中使用水晶报表,也可以让你在学习过程中少走一些弯路。为了得到最好的效果,读者最好需要有一些基础的Asp.Net访问数据库的知识以及使用VS.Net的开发经验。
  简介
  水晶报表可以由很多的方法得到,其中一个就是使用VS.Net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用VS.Net开发.Net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在VS.Net中了。
  优点:
  VS.Net水晶报表有下面一些主要的优点:

快速的报表开发

能够导出成为复杂的交互性图表

可以与其它控件一起在WebForm中使用

能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式

  结构:
  一些组件组成了水晶报表的二层结构,需要的Web应用有:
  客户端 :
  客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了
  服务器 :
  水晶报表引擎(Crystal Report Engine (CREngine.dll))
  通过它可以完成一些任务,如在报告文件中合并数据,转换报告为其它格式等。也正是因为报告引擎的作用,才可以将Asp.Net中的水晶报表转换成为普通HTML格式
  水晶报表设计器(Crystal Report Designer (CRDesigner.dll))
  水晶报表就是在设计器中创建的,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。
  .rpt报表文件
  执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。
  Data Source
  .rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
  水晶报表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))
  水晶报表查看控件是一个WebForm控件,可以将它看成是一个在.aspx页面中存放报表的容器。 注意:在一些复杂的操作中,报表服务器与Web服务器可能不在同一物理主机上,Web服务器将HTTP请求传送到报表服务器上去。水晶报表也可以当做WebService来执行。
  执行模式
  水晶报表取数据可以使用下面的方法实现:
  Pull 模式:
  被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。
  Push 模式 :
  此时开发表不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。
  报表类型:
  水晶报表设计器能够直接包含报表至工程也能够使用独立的报表对象。
  Strongly-typed 报表 :
  当你将报表文件加入到项目中去时,它就变成了一个了“ strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。
  Un-Typed 报表 :
  这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立一个实例,并且”手动“地凋用报表。
  其它注意事项
  尽管水晶报表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。
  VS.Net中的水晶报表如果没有注册,那么它只能使用30次,30次后,”保存“功能就不能再使用了。为了避免这个,你不是不在 http://www.crystaldecisions.com/这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持)
  默认安装的水晶报表只能支持5个用户,为了支持更多的用户,你不得不在 http://www.crystaldecisions.com/中购买许可证。
让我们感受一下----在Asp.net中使用一个现成的水晶报表文件

  让我们先感受一下在WebForm中使用水晶报表的感觉。   
1) 从WebForm工具栏中拖动水晶报表查看器控件(Crystal Report Viewer)至.aspx页面中。

 

  2) 调出水晶报表查看器控件的属性窗口  
  3) 点击[...]按钮查看"Data Binding"属性,并弹出了DataBinding窗口。
  4) 从左边的"Bindable属性”区中选择“Report Source”
  5) 选中"自定义绑定表达式"单选按钮,在右边的底部的窗口中指定.rpt文件的文件名和路径,例如:"C:\\Program Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt",然后”确定“

  注意:文件”World Sales Report.rpt“文件是在VS.Net安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。
  上面的步骤中实际上是插入了下面这些代码至Asp.Net文件中: <%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web" %>

  以及: <CR:CRYSTALREPORTVIEWER>
id="CrystalReportViewer1"
runat="server" Width="350px" Height="50px"
ReportSource=' <%# "C:\\Program Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt" %>'>
</CR:CRYSTALREPORTVIEWER>

   注意:在飞刀我的VS.Net正式版中自动生成的代码中ReportSource产生的样式不是这样子的,它是: ReportSource=" <%# C:\xxxxx\xxx.rpt %>"

  这样是错误的,会出现错误信息,有两处错误:
DataBind中要有双引号,因此外部只能用单引号
目录分隔符号不能使用"\",必须使用"\\"

  必须按照使用本文介绍的格式来手动修改,这也算是VS.Net的一个Bug吧。
  6) 在Page_Load方法中调用DataBind方法。(代码为VB.Net)

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
DataBind()
End Sub

  7)保存并编译你的页面。 现在,你就有一个内嵌水晶报表的WebForm页面了。
  注意:实际开发中,一开始会出现无法访问inetsrv目录的错误,解决的办法是改变其目录的安全属性,使User用户有可写的权限。飞刀我发现.Net系统自已给出的解决方法是没有用的,也可能是我使用的是Windows.Net操作系统的原因。

时间: 2025-01-02 01:03:44

ASP.NET中水晶报表的使用的相关文章

ASP.NET中水晶报表的使用方法详解_实用技巧

前一段时间,由于在项目中要用到报表做统计,所以我学习了一下ASP.NET水晶报表的使用.水晶报表的执行模式(也就是取数据的方法)可以分为两种: 第一种是Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据. 另外一种就是Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表.在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化. 水晶报表中的报表类型也分为两种: --StrongTyped 报表: 当你将报表文

asp.net-VS2013上ASP.NET的水晶报表问题

问题描述 VS2013上ASP.NET的水晶报表问题 我做了这些完全是对的,DEBUG运行出来也是空白的,查看代码里面还在 IIS也一样不行,都是没报错...怎么原因?我在百度都没能解决

VS2010中水晶报表应用及实例

原文:VS2010中水晶报表应用及实例 基本分类如下:第一部分:VS2010简介VS2010是微软的提供的一套完整的开发环境,功能也是相当的大微软宣布了下一代开发工具和平台的正式名称,分别称为"Visual Studio Team System 2010"和".NET Framework 4.0",很显然二者会在2010年发布. VSTS 2010开发代号"Rosario"(阿根廷港市罗萨里奥),将致力于引领下一代平台发展.提高开发人员的工作效率

Vs2010中水晶报表引用及打包

原文:Vs2010中水晶报表引用及打包 转自:http://yunhaifeiwu.iteye.com/blog/1172283 Vs2010中水晶报表引用 在sap官网中下载支持vs 2010中的水晶报表组件.具体地址: 1)包括了报有DLL的水晶报表文件 url: http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe 2)水晶报表部署时用到的文件 url: http://downloads.business

vs2008 中水晶报表

问题描述 vs2008中水晶报表建一张空白报表为什么是灰色,怎么样才能编辑?一直没用过水晶报表,谢谢 解决方案 解决方案二:该回复于2009-06-18 17:18:55被版主删除

求助 .net中水晶报表中的下一页,点下一页只能显示第二页,再点还是显示第二页

问题描述 .net中水晶报表中的下一页问题,点下一页只能显示第二页,再点还是显示第二页,不知哪地方没搞好,还望高手帮解决下,谢谢! 解决方案 解决方案二:很多细节的地方你没注意吧.比如自动分页,ispostback什么的解决方案三:如果只加载一次,第二页就报错了,现在是到第二页后,再点下一页还是在第二页,感觉在哪又给初始化了的

VB6中水晶报表(Crystal Report 4.6)的使用经验

水晶报表 我第一次接触水晶报表是在2001年3月在我的同事尹晓祥同志开始接触水晶报表的. 水晶报表(Crystal Report 4.6)只支持Access97格式的数据库, 所以,先在Access2000格式中设置好表与表的关 系,再把表转换到97格式,在水晶报表中调入97数据库后,在Links中自动会找出表间的关系. 水晶报表在VB的安装盘中已自带了. 路径: COMMON\TOOLS\VB\CRYSREPT\CRYSTL32.EXE系列号: 1231467890安装后,运行路径: \Pro

C#中水晶报表使用CrystalReportViewer查看器查看都显示正常,但是打印出来的东西字体会变得很小

问题描述 水晶报表使用的是10号的字体,在查看器中的显示中都是正常的,但是一打印,出来的东西就变得很小,不知道为什么啊,有没有大神指导一下啊!!急!急!急! 解决方案

求一个winform中水晶报表打印DataGridview例子

问题描述 我没用过水晶报表,现在需要用它来处理打印但是我不会用谁能给我一个完成的水晶报表的例子呀谢谢..有点急请发到我的油箱里谢谢rui---04@163.com请著名你的名字然后给我在这里留个言我看到合适的会马上给分谢谢 解决方案 解决方案二:我做过水晶报表,但用了三方插件的要吗??解决方案三:有没有不用第三方插件的呀我要从基础学期呀要不学不会解决方案四:用推模式对报表进行填充数据,把要打印的数据分别绑定到DataGridview和设计的报表就这样简单啊解决方案五:但用了三方插件的要吗??解决