设为首页 | 加入收藏 | 联系站长
Google
 | 星际争霸 | 星际争霸II | 暗黑破坏神
 | 魔兽争霸 | 英雄无敌  
 您现在的位置: 好技术学习网 >> 技术文章 >> ASP.NET技术 >> ASP.NET基础知识 >> 文章正文
相 关 文 章
解析.Net框架下的XML编程技…
VS.NET下web项目源代码管理
NUnit学习之VS.net 2005篇
在VS.NET 2005中体验clicko…
使用VS.NET 2005 Beta 2初次…
VS.NET 2002下水晶报表的安…
vs.net+c#程序快速开发数据…
VS.NET解决方案的版本兼容问…
当VS.NET2003遇上2005,WebS…
VS.NET安装部署深入研究(图…
最 新 热 门
最 新 推 荐
精 彩 游 戏
移动能力强,防御强大,任何地方都可以建筑,隐形,多样性,船舶,科技树…
[星际补丁]1.14·1.13f·1.08b
[星际2]酷图 [星际2]人族视频
[人类]大法师  [兽族]暗影猎手
[精灵]恶魔猎手 [不死]死亡骑士
[资讯]魔兽资讯 [图库]魔兽酷图
[下载]魔兽下载 [壁纸]精美壁纸
暗黑破坏神入门 暗黑破坏神指引
[Hero5]宝物一览   英雄无敌
当前时间是:
VS.Net中的水晶报表的应用
作者:abandons… 来源:天新网 时间:2008-7-7 15:55:31 『 字号:  』

简介 

水晶报表可以由很多的方法得到,其中一个就是使用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操作系统的原因。  

  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【打印本文】【关闭窗口

    网站公告 | 关于本站 | 联系站长 | 设为首页 | 加入收藏 | 友情链接 | 版权申明 | 广告服务 | 网站地图 | 访客留言

    Copyright ©
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览
    | |
    本站大部分信息资源来源于网络,仅供学习|研究|探讨|收藏之用,版权归原作者所有!