水晶报表技术(6)——如何在.Net Web应用中使用水晶报表1

简介:
   这篇文章教你如何在 .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 Files\\Microsoft Visual Studio.NET\\Crystal Reports\\Samples\\Reports\\General Business\\World Sales Report.rpt" ,然后 确定
    
注意:文件 ”World Sales Report.rpt“ 文件是在 VS.Net 安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。  
上面的步骤中实际上是插入了下面这些代码至 Asp.Net 文件中:
  
以及:
        
                  id="CrystalReportViewer1"
                  runat="server" Width="350px" Height="50px" 
                  ReportSource=''>
        
注意:在飞刀我的 VS.Net 正式版中自动生成的代码中 ReportSource 产生的样式不是这样子的,它是:
  ReportSource="" 
这样是错误的,会出现错误信息,有两处错误:  
必须按照使用本文介绍的格式来手动修改,这也算是 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 操作系统的原因。




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/203446,如需转载请自行联系原作者

目录
相关文章
|
9天前
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
1月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
50 3
|
14天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
26 6
|
14天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
21 5
|
23天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
21天前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
28 3
|
21天前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
26 3
|
26天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
24天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
27天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install