Crystal Report.net Web报表开发日记

使用Crystal Report.net进行开发的一些预备知识:

执行模式

水晶报表取数据可以使用下面的方法实现:

Pull 模式:

被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>  

Push 模式 :

此时开发表不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。

报表类型:

水晶报表设计器能够直接包含报表至工程也能够使用独立的报表对象。

Strongly-typed 报表 :

当你将报表文件加入到项目中去时,它就变成了一个了“ strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。

Un-Typed 报表 :

这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立一个实例,并且”手动“地凋用报表。

其它注意事项

尽管水晶报表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。

VS.Net中的水晶报表如果没有注册,那么它只能使用30次,30次后,”保存“功能就不能再使用了。为了避免这个,你不是不在 http://www.crystaldecisions.com/这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持)

默认安装的水晶报表只能支持5个用户,为了支持更多的用户,你不得不在 http://www.crystaldecisions.com/中购买许可证。

我在实际开发应用中使用的是Push 模式 : , 因为一般表格模式比较简单,在Web开发上完全可以用其他方式替代,因此,我使用的是实际开发中的图形报表做为例子。

开发步骤如下:

1、在项目中创建一个数据集,然后右键->选择“新建element”,element的名称就是数据表的名称。

数据集名称暂时定为:ReportData,element相当于一个数据表,名称暂定为:DataTable,下一步是给element

增加字段,也就是我们报表中要使用的数据。注意字段类型。

2、绘制一个空的Crystal Report的报表文件(*.rpt),然后,在报表绘制界面上右键->选择“数据库->添加/删除数据库”打开“数据库专家”,选择“项目数据->ADO.net数据集”,你会看到刚才创建的element数据集ReportData,选用DataTable做为报表数据。下一步,通过报表专家插入“图表”,使用DataTable中的数据字段

来生成报表的数据。

3、创建一个Web窗体,在窗体上放一个CRYSTALREPORTVIEWER控件!写代码获取填充一个定义的数据集DataSet,然后,生成一个“报表文件的对象”,把该对象的数据源指向已经填充数据的DataSet,对CRYSTALREPORTVIEWER控件的ReportSource属性赋值等于生成的“报表文件的对象”,CRYSTALREPORTVIEWER控件的Visible属性设置为true ;

代码注意事项:

1、DataSet中填充数据的表的名称必须和原来定义的element一致,否则报表出来会是空白

2、用于填充DataSet数据表的字段也要和element定义的字段属性,名称一致!

比如:

element中定义字段有两个:EntryName string, EntrySales decimal

填充DataSet的SQL语句,

Select B.Item_Name as EntryName ,Sum(A.Expend_Money) AS EntrySales From T_Ware_Sales .......

完成以上3个步骤,你就可以在IE上看到你的Web图形报表了,其实就是Crystal生成的一张图片!

大功告成!

 

 

在我们对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 %>"

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>  这样是错误的,会出现错误信息,有两处错误:
  • 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操作系统的原因。  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值