资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
有关水晶报表的使用经验和总结Asp.Net(webform)中使用水晶报表这篇文章教你如何在.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 中使用一个现成的水晶报表文件1) 从 WebForm 工具栏中拖动水晶报表查看器控件 (Crystal Report Viewer)至.aspx 页面中。2) 调出水晶报表查看器控件的属性窗口 3) 点击.按钮查看Data Binding属性,并弹出了 DataBinding 窗口。4) 从左边的Bindable 属性”区中选择“Report Source”5) 选中 自定义绑定表达式单选按钮,在右边的底部的窗口中指定 .rpt 文件的文件名和路径,例如:C:Program FilesMicrosoft Visual Studio.NETCrystal ReportsSamplesReportsGeneral BusinessWorld Sales Report.rpt,然后”确定“注意:文件”World Sales Report.rpt“文件是在 VS.Net 安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。 上面的步骤中实际上是插入了下面这些代码至 Asp.Net 文件中:以及:id=CrystalReportViewer1runat=server Width=350px Height=50px ReportSource=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 操作系统的原因。 使用 Pull 模式我们将通过下面的这些步骤来通过 Pull 模式来执行水晶报表 1.首先创建 rpt 文件,并使用水晶报表设计接口设置一些必须的数据连接。 2.拖放一个 CrystalReportViewer 控件至 aspx 页面,设置它的属性指定我们上一步创建的.rpt 文件。 3. 在代码中调用 DataBind 方法。创建 .rpt 文件:1) 在右击”解决方案游览器“,在弹出的菜单中选择” 添加“”添加新项“ ”Crystal Report” 2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。 3)这里将弹出水晶报表设计器。 4) 右击报表中的”详细资料区” ,选择“数据库”“添加/ 删除数据库.5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE DB(ADO)“窗口。6) 在 OLE DB (ADO) 弹出窗口中 ,选择 Microsoft OLE DB Provider for SQL Server 然后 Next7) 指定连接的信息服务器 : ASPCN (您的机器是什么名字就写什么) 用户 ID: sa密码:数据库 : Pubs8) 单击”Next“,最后单击”Finish“按钮。9) 这时你就能在”数据库专家“窗口中看到我们选择的数据库。10) 扩展 ”Pubs“数据库,扩展”表“,选择”Stores “表并将其加到”选定的表“区中,单击”OK 按钮。11) 现在在”字段资源浏览器“中就会在左边”数据库字段“区中显示你选择的表,以及表中的字段。12) 拖放需要的字段进入报表的”详细资料“区。字段名将会自动出现在”页眉“区。如果你想修改头部文字,则可以右击”页眉“区中的文字,选择”编辑文本对象“选项并进行编辑。13) 保存,这样我们就有了一个水晶报表文件。创建 CrystalReportViewer 控件14) 回到前面的 WebForm 中,拖放一个 Crystal Report Viewer 控件到页面中去。15) 调出 Crystal Report Viewer 控件的属性窗口,选择“DataBindings区点击.16) ”Crystal Report Viewer 数据绑定窗口”中,在右边的“可绑定属性”中选择”ReportSource“,并选择右下角的“自定义绑定表达式”中指定.rpt 文件路径。 17) 此时你能够从 Crystal Report Viewer 控件中看到使用一些虚拟数据组成的报表文件的预览。注意:在上面的例子中,CrystalReportViewer 可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。Code Behind 程序设计18) 在 Page_Load 方法中调用 DataBind 方法。执行你的程序 19) 创建并运行你的程序! 您现在就可以直接在 Web 页面中使用水晶报表内置的一些功能,如页面导航,缩放等。 我们采用下面的几步使用 Push 模式执行水晶报表:1. 设计一个 DataSet2. 创建一个.rpt 文件同时将其指定给上一步建立的 DataSet。3. 在 aspx 页面中拖放一个 CrystalReportViewer 控件同时将其与前面的 rpt 文件建立联系。4. 在代码中访问数据库并把数据存入 DataSet5. 调用 DataBind 方法。设计一个 DataSet1) 右击“解决方案浏览器” ,选择“添加”-“添加新项”“数据集”2) 从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表( 位于 PUBS 数据库中)。3) 此时在数据集中就会有一个 Stores 表的结构图。- .xsd 文件中仅仅包含一个结构图,但是不会有任何数据在里面。创建 .rpt 文件 :4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。5)建立.rpt 文件之后,右击“详细资料”添加删除数据库“6) 在” 数据库专家 “窗口中,展开”项目数据“( 代替以前的 OleDb),展开“ADO.Net 数据集”-DataSet1“,选择”Stores “表。7) 将”Stores表添加到“选定的表”中,点击“OK”8) 使用 PULL 模式下的方法,建立一个 WebForm建立一个 Crystal Report Viewer 控件9) 建立一个 Crystal Report Viewer 控件,并设定其属性,此处与 PULL 模式下是一致的。Code Behind 代码 :10) 在 Page_Load 方法中使用下面的子函数:VB.Net 代码: Sub BindReport()Dim myConnection As New SqlClient.SqlConnection() myConnection.ConnectionString= server= (local)NetSDK;database=pubs;Trusted_Connection=yesDim MyCommand As New SqlClient.SqlCommand()MyCommand.C
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号