`
leonardleonard
  • 浏览: 801742 次
社区版块
存档分类
最新评论

ASP.NET中水晶报表的使用

阅读更多
作者:caoli                              

在我们对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操作系统的原因。  

 

分享到:
评论

相关推荐

    asp.net MVC 水晶报表 Using Crystal Report in ASP.net MVC

    4. **报表数据源**:在水晶报表中,数据源可以是任何支持ADO.NET的数据提供者。连接到数据库并选择要查询的表或视图,或者使用存储过程来获取数据。 5. **创建报表控制器**:在MVC项目中创建一个新的控制器,比如...

    asp.net web 水晶报表的使用大全

    在水晶报表中,数据源的配置是关键步骤。通过“数据库专家”,可以选择ODBC或ADO.NET数据源,然后连接到SQL Server 2005数据库。可以设置SQL查询或者使用存储过程获取数据。 4. **报表设计** 设计报表界面是水晶...

    asp.net 动态水晶报表实现

    在ASP.NET开发中,水晶报表(Crystal Reports)是一款强大的报表设计工具,常用于生成复杂的业务报告。本教程将深入探讨如何在ASP.NET环境中实现水晶报表的动态操作,从而避免报表直接与数据库进行硬编码关联,增强...

    asp.net动态水晶报表实现代码

    下面我们将深入探讨如何在ASP.NET中实现动态水晶报表,并基于提供的"导入Excel"这一标签,讲解如何将Excel数据导入到报表中。 1. **水晶报表概述** - 水晶报表是Business Objects公司的产品,后被SAP收购。它支持...

    CrystalReports2.0--Asp.net2.0水晶报表(CrystalReports)实例源码大全(C#).rar

    《CrystalReports2.0在Asp.net2.0中的应用详解及C#源码解析》 水晶报表(Crystal ...通过学习和实践这些实例源码,开发者可以提升在Asp.net2.0中使用CrystalReports2.0的能力,更好地满足项目需求,提高开发效率。

    Asp.Net中使用水晶报表

    在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。一周以后,在阅读了大量的“HOWTO”文档之后,我们成功地将一些简单的报告加入...

    asp.net水晶报表 示例

    ASP.NET水晶报表是一种广泛用于创建和展示数据报告的工具,尤其在Web应用程序中。它结合了强大、灵活的报告设计功能和高效的数据显示能力,使得开发者能够轻松地在ASP.NET环境中生成复杂的业务报告。本示例将详细...

    Asp.net2.0水晶报表.rar

    这个压缩包文件“Asp.net2.0水晶报表.rar”很可能包含了关于如何在ASP.NET 2.0平台下使用水晶报表的教程、示例代码和相关资源。 水晶报表作为一款强大的报表设计工具,提供了多种数据源支持,包括SQL Server、...

    asp.net水晶报表视频教程二

    ASP.NET水晶报表是用于在Web应用程序中生成动态、交互式报告的强大工具。这个视频教程系列,特别是"ASP.NET水晶报表视频教程二",旨在帮助开发者深入理解和熟练掌握如何在Visual Studio(VS)环境中设计、创建和实现...

    Asp.Net中使用水晶报表(下)

    在上一篇关于 ASP.NET 中使用水晶报表的文章中,我们探讨了水晶报表的基本概念以及如何在 ASP.NET 应用程序中集成水晶报表。本篇将继续深入,介绍如何创建 `.rpt` 文件,并通过数据集的方式与报表进行交互。 #### ...

    Asp.net2.0水晶报表实例

    综上所述,Asp.NET 2.0 水晶报表实例旨在提供一个实践平台,让开发者掌握如何在Web应用程序中集成和使用水晶报表,从而创建富有洞察力且易于使用的报表系统。通过研究提供的示例和文档,开发者可以深入了解水晶报表...

    asp.net 水晶报表实例源码

    ASP.NET水晶报表是一种广泛用于创建复杂、交互式报表的工具,尤其在企业级应用程序中非常常见。本实例源码提供了一种深入理解水晶报表在ASP.NET环境中的应用方式。通过这个源码,开发者可以学习如何集成水晶报表到...

    asp.net使用水晶报表

    本篇文章将详细探讨如何在ASP.NET中使用水晶报表,以及相关的关键知识点。 首先,我们需要了解水晶报表的基本概念。水晶报表是由SAP公司开发的一款报告生成软件,它允许开发者通过拖放界面设计复杂的报表,并能够...

    c# asp.net的mvc模式下成功使用水晶报表

    C# ASP.NET的MVC模式下成功使用水晶报表 在ASP.NET的MVC模式下,使用水晶报表是一件比较复杂的事情,因为水晶报表需要套打,用EXCEL做报表,根据记录数分页。但是,通过不停的测试和尝试,我们终于实现了在MVC模式...

    【ASP.NET编程知识】ASP.NET中水晶报表的使用方法详解.docx

    本文将详细解释如何在ASP.NET环境中使用水晶报表。 首先,水晶报表有两种执行模式:Pull模式和Push模式。 1. Pull模式:在Pull模式下,报表自身负责从数据库获取数据。当用户请求报表时,水晶报表会基于指定的...

    asp.net水晶报表

    ASP.NET水晶报表是一种广泛用于创建复杂、交互式报表的工具,尤其在企业级应用中非常常见。水晶报表是由Business Objects公司开发的,后来被SAP收购,成为了SAP BI(Business Intelligence)解决方案的一部分。它...

Global site tag (gtag.js) - Google Analytics