• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 作文范文 > 正文

    报表制作 基于CrystalReport的.NET报表制作

    时间:2018-12-27 03:27:55 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要: 本文介绍了在Microsoft.NET环境下如何利用Crystal Report工具制作报表,着重介绍了不同报表之间的差别以及在不同模式下产生报表的不同方法,同时还就.NET报表制作过程中的常见问题提出了解决方法。
      关键词: Crystal Report建立过程 使用 类型 执行模式
      
      1.引言
      基于.NET的WEB应用是目前的主流,因此研究在.NET平台下如何制作、使用报表很有必要。一般任何超出基本格式化的报表制作都会比较复杂,很难对合并计算、多级汇总、制作图表以及条件格式化等进行编程,而这些问题在.NET环境下通过使用Crystal Report(水晶报表)可以很好地得到解决。本文主要介绍了在.NET环境下如何利用Crystal Report工具制作报表,重点论述了在这两种模式下报表制作的不同方法以及不同报表之间的差别,同时还就报表制作过程中的常见问题提出了解决方法。
      2.Crystal Report 简介
      Crystal Report是微软Visual Studio.NET上标准的报表制作工具,可在.NET平台上建立具有交互式和简报性质的报表。Crystal Report使用XML的标准结构,使用户能将制作的报表装载到Windows和Web平台,并将Crystal Report所产生的报表发布成Web服务器上的“报表Web服务”,也就是说当“报表Web服务”发行到Web服务器上后,位于前端的应用程序就可以使用它,在网络上浏览或打印。
      Crystal Report支持来自不同来源的数据可支持数据源如表1所示:
      
      3.Crystal Report的建立过程
      3.1 Windows程序中Crystal Report的使用
      在Windows窗体中报表的建立,首先需要新建Windows项目,为了便于对程序的查看需要添加Crystal Report Viewer 控件,添加“选择报表”按钮以便在输出时选择不同的数据格式,添加按钮响应事件crvTest.Report Source = dlg.FileName以使按钮和事件相对应(如图1所示,就是将文件的路径名给ReportSource)。
      
      3.2 Web窗体中水晶报表的使用
      在客户端:客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了,而在服务器端需要有:(1)水晶报表引擎(Crystal Report Engine(CREngine.dll)):在报告文件中合并数据,转换报告为其它格式等;(2)水晶报表设计器(Crystal Report Designer(CRDesigner.dll)):水晶报表就是在设计器中创建的,在设计器中你可以设计标题,插入数据、公式、图表、子报表等;(3).rpt报表文件:执行报表中的第一步就是在水晶报表设计器接口创建此报表;(4)Data Source:通过rpt文件取得数据库;(5)水晶报表查看控件(Crystal Report Viewer webform Control (CRWebFormViewer.dll)):是一个WebForm控件,可以将它看成是一个在.aspx页面中存放报表的容器。如图2所示,可以发现基于Web的水晶报表查看器没有打印和导出按钮,要实现这些功能都需要自己添加代码。
      
      3.3 在添加CrystalReportViewer时的关键问题和解决方法
      使用VB.NET中CrystalReport做报表时会遇到这样的情况:在添加CrystalReportViewer时在“WindowsForm” 工具箱中没有“CrystalReportViewer” 控件,而这样的问题在C#.NET不会出现。要解决这样的问题,如图3所示,只须在“WindowsForm”工具箱中右击鼠标,选择“添加/移除项”,这样就可以看到CrystalReportViewer控件。
      
      4.两种报表类型
      根据报表是否直接加入项目可将报表分成两种:(1)Strongly-typed 报表:当你将报表文件加入到项目中去时,它就变成了一个了“Strongly-typed”报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。(2)Un-Typed 报表:这里的报表并不直接包含在项目中,因此称为“un-typed”报表。在这种情况下,不得不使用水晶报表的“ReportDocuemt”对象建立一个实例,并且“手动”地调用报表。
      5.Crystal Reports的两种执行模式
      根据Crystal Report取数据方法的不同可以将执行模式分成Pull模式和Push模式:(1)Pull 模式:被请求时,Crystal Report直接根据指定的驱动连接数据库然后组装这些数据;(2) Push 模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在这种情况下,通过使用连接共享以及限制记录集合的大小,可以使报表性能最大化。
      5.1 两种模式的使用
      Pull模式的使用从创建rpt文件开始,并使用水晶报表设计接口设置一些必须的数据连接;其次拖放一个Crystal Report Viewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件;最后在代码中调用Data Bind方法。
      Push模式的使用从创建一个DataSet开始,然后在aspx页面中拖放一个CrystalReportViewer 控件,同时将其与前面的rpt文件建立联系,再次在代码中访问数据库并把数据存入DataSet,最后调用DataBind方法。
      5.2 在选择执行模式建立报表时的“无法加载”问题的解决方法
      在使用上述两种模式进行报表制作时通常会出现数据库无法加载或者报表无法加载的问题,这个问题主要是因为配置属性中的输入/出路径配置不正确造成的。具体解决方法如下:
      在资源管理器中选取项目(如BasicReport),再使用“项目”→“BasicReport属性”,切换至“配置属性”的“生成”,清除“输出路径”,“输出路径”的默认值是“bin\Debug”(是默认存储目录,所以和图中的“bin\”路径不矛盾),这就可以防止在导出时出现“无法加载”的错误。如图4所示:
      
      6.小结
      本文论述了在Microsoft.NET环境下如何利用Crystal Report工具制作报表,通过实例介绍在Pull和Push两种报表制作模式下基于Web平台的报表的制作过程,并就制作过程中Pull和Push两种模式的区别做了介绍,且针对常见问题给出了解决方案。
      
      参考文献:
      [1]王华杰.精通C#数据库开发.清华大学出版社,2004.
      [2]微软公司.用Visual Basic.NET和Visual C#.NET开发Windows应用程序,2004:5-6.

    推荐访问:报表 制作 CrystalReport NET

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章