NET中水晶报表的使用

NET中水晶报表的使用http www newasp net tech net 12426 html 一 在使用自带的水晶报表时

大家好,欢迎来到IT知识分享网。

=====================================================

http://www.newasp.net/tech/net/12426.html

http://51iter.com/wangzhan/aspnet/200604/wangzhan_27802_2.html

=======================

http://51iter.com/wangzhan/aspnet/200604/wangzhan_27803.html

 }

==============================================================================

http://www.ccw.com.cn/htm/center/prog/02_7_5_6.asp

在我们对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应用有:
1、客户端 :
客户端仅需要一个可以访问嵌入aspx页面报表的游览器就可以了
2、服务器 :
  • 水晶报表引擎(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页面中。

NET中水晶报表的使用

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”,然后“确定”。
NET中水晶报表的使用
注意:文件”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操作系统的原因。

NET中水晶报表的使用

============================

http://203.191.151.199/develop/2005-7-23/499/default.aspx

author: zsww  From: cnblogs


protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
ReportDocument oRpt = new ReportDocument();
string RptDir=”f://bbs//test//crystal//crystalreport1.rpt”; //crystalreport1.rpt文件所在的绝对路径
oRpt.Load(RptDir);

 









 

Add by : DevEduSiteMaster (2005-7-23:09:46)

==============================

http://www.cnblogs.com/HD/archive/2006/09/25/514112.html

 

概述

目录

VISUAL C# .NET

一、数据库连通性

三、导出

四、格式化

五、公式

六、参数字段

七、打印报表

八、查看报表

九、报表 Web 服务

十、子报表

十一、Windows/Web 查看器 (选项/事件)

Visual C++ .NET

十二、参数

十三、数据库问题

十四、子报表

=============================================================

http://hi.baidu.com/_raymond/blog/item/6c17bd822cb379bf6d8119d2.html

水晶报表的初级使用
2007-02-03 09:15

 
 

  • 水晶报表 Web 查看器文件夹 NTFS 权限的问题
    (1)错误提示:
    “/WebApplication1”应用程序中的服务器错误。
      登录失败。 
      说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
      异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。
    (2)相关文件夹:
    VS.NET Crystal Reports: C:/Program Files/Microsoft Visual Studio .NET/Crystal Reports/Viewers
    Crystal Reports 9.2: C:/Program Files/Common Files/Crystal Decisions/2.0/crystalreportviewers  






  • 水晶报表文件所在的文件夹,或者导出时的目标文件夹 NTFS 权限的问题
    (1)错误提示:
    登录失败。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
    异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。  



  • 设置上述文件夹的“安全”,即 NTFS 权限:
    最简单的办法是给 Everyone 用户加“完全控制”权限!
    (1)为当前用户,如:Administrator,,添加“写入”权限;
    (2)为用户 ASPNET、SYSTEM、匿名用户(通常为 IUSR_MACHINENAME)、经过身份验证的请求用户添加“写入”权限。  


  • 在PULL模式下使用水晶报表  

using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;

{

   TableLogOnInfo log = new TableLogOnInfo();
   log.ConnectionInfo.ServerName = “wudi”;
   log.ConnectionInfo.DatabaseName = “YabOA”;
   log.ConnectionInfo.UserID = “asp.net”;
   log.ConnectionInfo.Password = “exit”;
   ReportDocument rd = new ReportDocument();
   string RptPath = null;
   
   RptPath =Server.MapPath(“CrystalReport2.rpt”);
   rd.Load(RptPath);
   rd.Database.Tables[0].ApplyLogOnInfo(log);









   this.CrystalReportViewer1.ReportSource = rd;

   this .CrystalReportViewer1.DataBind();

}

  • 在PUSH模式下使用  
    1. 生成一个数据集文件,然后创建要查询信息的结构(可从数据库中托经来),然后生成项目  
    2. 添加Crystal Reports组件,并设置相关信息,字段连接到刚才生成的数据集文件中的表(如果刚才创建后没有生成项目,这里看不到那个数据集文件的表格)  
    3. 代码如下:  

using CrystalDecisions.Shared;
using System.Configuration;

{

  string connectString = “server=.;user id=ASP.NET;initial    catalog=Yaboa;password=exit”;
   SqlConnection MyConnection = new SqlConnection(connectString);
   MyConnection.Open();
   string sqlstring = “select xh,sh,qy from baseinfoVwOfZb”;


   SqlDataAdapter MyCommand = new SqlDataAdapter(sqlstring,MyConnection);
   DataSet ds = new DataSet();
   MyCommand.Fill(ds,”baseinfoVwOfZb”);   
   YabOA.CrystalReport1 cr1 = new YabOA.CrystalReport1();      
   cr1.SetDataSource(ds.Tables[“baseinfoVwOfzb”]);
   this.CustomerOrderCRViewer.ReportSource = cr1;




}

  • 说明  

在web中和在windowsApplication中水晶报表的使用略有不同。在Web中经常会遇到权限的问题。

                                                                                                                          
from:technow

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113763.html

(0)
上一篇 2025-12-12 20:48
下一篇 2025-12-12 21:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信