当前位置: 代码迷 >> .NET报表 >> 加载报表失败解决方案
  详细解决方案

加载报表失败解决方案

热度:6117   发布时间:2013-02-25 00:00:00.0
加载报表失败
高手看看哪里有问题


C# code
//crs为数据源ReportDataSource protected void Button1_Click(object sender, EventArgs e)    {        try        {            TableLogOnInfo loginfo = new TableLogOnInfo();            loginfo.ConnectionInfo.ServerName = "10.8.2.31";            loginfo.ConnectionInfo.UserID = "sa";            loginfo.ConnectionInfo.Password = "moringstra";            DataTable repdt = new DataTable();            SetDateUserid();            GetSpdt(ref repdt, txtUserid, beginDate, enddate);            crs.Report.FileName = "日报";            crs.ReportDocument.Load(Server.MapPath("Report/usp_DalayReoprt.rpt"));                        crs.ReportDocument.Database.Tables[0].ApplyLogOnInfo(loginfo);            crs.ReportDocument.SetDataSource(repdt);            crs.DataBind();                        CrystalReportViewer1.ReportSource = crs;            CrystalReportViewer1.DataBind();        }        catch (Exception ex)        {            MessageBoxShow(ex.Message.ToString());        }    }    private DataTable GetSpdt(ref DataTable spdt,string seUserid,string BeginDate,string Enddate)    {        try        {                        string Userid = (string)(Session["LoginUser"]);            string UserAuthority = (string)(Session["Authority"]);            UserAuthority = UserAuthority.Substring(1, UserAuthority.Length - 2);            getscnstr(scn);            OpenConn(scn);            string sqlstr2 = "SELECT * FROM uvw_IsPrincipal WHERE FnAME='" + Userid + "' AND IsPrincipal=1 ";            DataTable dt2 = acc.GetSereachData(scn, sqlstr2);            if (dt2.Rows.Count == 0)            {                    seUserid = Userid;            }                       getscnstr(scn);            OpenConn(scn);            SqlCommand cmd = new SqlCommand();            cmd.CommandText = "usp_DalayReoprt";            cmd.CommandType = CommandType.StoredProcedure;            cmd.Connection = scn;            cmd.Parameters.Add("@PositionCode", SqlDbType.VarChar);            cmd.Parameters["@PositionCode"].Value = UserAuthority;                       cmd.Parameters.Add("@Code", SqlDbType.VarChar);            cmd.Parameters["@Code"].Value = seUserid+"%";            cmd.Parameters.Add("@BeginDate", SqlDbType.VarChar);            cmd.Parameters["@BeginDate"].Value =  BeginDate;            cmd.Parameters.Add("@EndDate", SqlDbType.VarChar);            cmd.Parameters["@EndDate"].Value = Enddate;            crs.ReportDocument.SetParameterValue("PositionCode", UserAuthority);            crs.ReportDocument.SetParameterValue("BeginDate", BeginDate);            crs.ReportDocument.SetParameterValue("EndDate", Enddate);            SqlDataAdapter sda = new SqlDataAdapter(cmd);            sda.Fill(spdt);            return  spdt;        }        catch (Exception ex)        {            MessageBoxShow(ex.ToString());            spdt = null;            return spdt;        }            }


------解决方案--------------------------------------------------------
关键代码,参考下:
private ReportDocument myReport = new ReportDocument();

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
ConfigureCrystalReports();
}
}
private void ConfigureCrystalReports()
 {
string reportPath = Server.MapPath("../rptsources/AP_Creditor_AgingRe.rpt");
myReport.Load(reportPath);


//定义水晶报表的数据库连接信息
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.DatabaseName = "xx";
  相关解决方案