大家好,前两天问了水晶报表出错的问题,始终没有解决,可能是我没有叙述清楚,请大家帮忙讲一下水晶报表在asp.net下使用的最简步骤。以前在WinForm下试验过,只需要在CrystalReportViewer加入一个ReportSource就可以,在Asp.net里面不行吗?

解决方案 »

  1.   

    http://blog.51ww.com/andy/archive/2005/05/20/1685.51ww
      

  2.   

    我开始就是按照他说的做的,建立了一个报表,然后再CrystalReportViewer的ReportSource里加上"(报表路径)",再在Page_Load里加上DataBand()语句,后来出现CrystalDecisions.CrystalReports.Engine.LogOnException: 异常,请问是什么原因阿?
      

  3.   

    这个异常是在Page_Load里加上DataBand()才后调试才出现的,如果不加DataBand()的话在VS的编辑界面里报表浏览器可以显示报表模型,但是DEBUG后报表浏览器就为空
      

  4.   

    哦,不好意思,回帖时写错了,代码添加的是DataBind();请问大家是什么原因?
      

  5.   

    我看过你已经的贴,然后自己试着做,开始也出问题了。现在已经可以用了,你瞧瞧:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    //你可能是没有申明下面的命名空间
    using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine;namespace WebApplication2
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    CrystalReportViewer1.ReportSource = Server.MapPath("//WebApplication2//")+"客户列.rpt";
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }
      

  6.   

    真是太感谢各位了,ciney,谢谢你,我按照你的代码从新作了一下,但是出现了CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败我的代码如下:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine;namespace reportprinter
    {
    /// <summary>
    /// yanghu 的摘要说明。
    /// </summary>
    public class yanghu : System.Web.UI.Page
    {
    protected CrystalDecisions.Web.CrystalReportViewer crwYh;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    crwYh.ReportSource = Server.MapPath("//reportprinter//")+"cyYh.rpt";
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }