水晶报表的初级使用

昨天又是一个通晓搞水晶报表 。白天睡了一天。不过值得庆幸的是终于在web下以及在Windows Application中可以正常使用pull and push模式了。关于水晶报表传递参数的问题还没研究,估计不会太难。

 


 

    下面将关于水晶报表的使用笔记如下:

  • 水晶报表 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中经常会遇到权限的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值