水晶报表的初级使用

添加人:iyond五级(2333分)   添加时间:2007-03-30    阅读次数:3850  收藏此教程
  • 水晶报表 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中经常会遇到权限的问题。

1页 第1上一页1下一页
相关的教程: 水晶报表
收藏此教程 到论坛求助

当前平均分: -2.0(2 次打分)

012345678910
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: