仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 720|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之Asp.Net中利用水晶报表

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。asp.net|水晶报表编译:http://www.ASPcn.com飞刀
原文:http://www.aspfree.com
在我们对VS.net中的水晶报表(CrystalReports)举行研讨之前,我和我伴侣对怎样将这个庞大的东东到场我们的Web使用有着十分的猎奇心。一周今后,在浏览了大批的“HOWTO”文档以后,我们乐成地将一些复杂的呈报到场到了我们的ASP.NET程序中,并失掉了一些小决窍。

这篇文章教你怎样在.netWeb使用中利用水晶报表,也能够让你在进修过程当中少走一些弯路。为了失掉最好的效果,读者最好必要有一些基本的Asp.Net会见数据库的常识和利用VS.Net的开辟履历。

简介

水晶报表能够由良多的办法失掉,个中一个就是利用VS.Net来创立,它供应了十分丰厚模子以使我们可以在运转时操纵属性和办法。假如你正在利用VS.Net开辟.Net程序,那末你就不必要再安装别的软件了,由于他已内嵌在VS.Net中了。

长处:

VS.Net水晶报表有上面一些次要的长处:

疾速的报表开辟

可以导出成为庞大的交互性图表

能够与别的控件一同在WebForm中利用

可以静态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格局

布局:

一些组件构成了水晶报表的二层布局,必要的Web使用有:

客户端:

客户端仅必要一个能够会见嵌进aspx页面报表的巡游器就能够了

服务器:

-水晶报表引擎(CrystalReportEngine(CREngine.dll))

经由过程它能够完成一些义务,如在呈报文件中兼并数据,转换呈报为别的格局等。也恰是由于呈报引擎的感化,才能够将Asp.Net中的水晶报表转换成为一般HTML格局

-水晶报表计划器(CrystalReportDesigner(CRDesigner.dll))

水晶报表就是在计划器中创立的,在计划器中你能够计划题目,拔出数据,公式,图表,子报表等。

-.rpt报表文件

实行报表中的第一步就是在水晶报表计划器接口创立此报表,在默许安装中微软已供应了一些现成的.rpt例子。

-DataSource

.rpt文件获得数据库的办法取决于你办法的选择,你能选择让水晶报表本人选择数据而不利用任何代码大概也能够选择手动的组装DataSet,然后再将其传送到报表文件。

-水晶报表检察控件(CrystalReportViewerwebformControl(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工具栏中拖动水晶报表检察器控件(CrystalReportViewer)至.aspx页面中。 



2)修改水晶报表检察器控件的属性窗口 

3)点击[...]按钮检察"DataBinding"属性,并弹出了DataBinding窗口。

4)从右边的"Bindable属性”区当选择“ReportSource”

5)选中"自界说绑定表达式"单选按钮,在右侧的底部的窗口中指定.rpt文件的文件名和路径,比方:"C:ProgramFilesMicrosoftVisualStudio.NETCrystalReportsSamplesReportsGeneralBusinessWorldSalesReport.rpt",然后”断定“



注重:文件”WorldSalesReport.rpt“文件是在VS.Net安装时创立的。假如你在安装过程当中指定了别的目次,此时你最好确认一下路径的准确性。

下面的步骤中实践上是拔出了上面这些代码至Asp.Net文件中:



和:

id="CrystalReportViewer1"
runat="server"Width="350px"Height="50px"
ReportSource=>


注重:在飞刀我的VS.Net正式版中主动天生的代码中ReportSource发生的款式不是如许子的,它是:

ReportSource=""

如许是毛病的,会呈现毛病信息,有两处毛病:

DataBind中要有双引号,因而内部只能用单引号
目次分开标记不克不及利用"",必需利用""
必需依照利用本文先容的格局来手动修正,这也算是VS.Net的一个Bug吧。

6)在Page_Load办法中挪用DataBind办法。(代码为VB.Net)

PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)

DataBind()

EndSub

7)保留并编译你的页面。如今,你就有一个内嵌水晶报表的WebForm页面了。

注重:实践开辟中,一入手下手会呈现没法会见inetsrv目次的毛病,办理的举措是改动其目次的平安属性,使User用户有可写的权限。飞刀我发明.Net体系自已给出的办理办法是没有效的,也多是我利用的是Windows.Net操纵体系的缘故原由。一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。
简单生活 该用户已被删除
沙发
发表于 2015-1-19 15:59:40 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-27 13:21:12 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-5 09:25:45 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-11 08:29:59 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
山那边是海 该用户已被删除
6#
发表于 2015-3-2 04:43:06 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
若相依 该用户已被删除
7#
发表于 2015-3-11 02:35:23 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
再现理想 该用户已被删除
8#
发表于 2015-3-24 21:20:00 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 16:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表