其他分享
首页 > 其他分享> > 带有IIS的Crystal Report

带有IIS的Crystal Report

作者:互联网

我在Visual Studio 2008中使用Crystal报表.在我的项目中,我有一个带有内部子报表的报表.我使用水晶报表查看器来显示我的报表.当我在Visual Studio调试模式下运行网站时,其所有功能都运行良好,报告可以正确显示.

但是,当我在IIS(版本8.5,Windows 10 Dev Preview)上设置我的网站(也在开发PC上)时,我的报告没有显示,它要求在主报告和子报告之间建立参数链接.

任何人都可以告诉我有什么问题以及如何解决这个问题?
非常感谢.

这是我在Report Viewer WebControl上的代码

protected void Page_Load(object sender, EventArgs e)
{
    int xid = 0;
    if (!IsPostBack)
    {
        if (!string.IsNullOrEmpty(Request.Params["preUrl"].ToString()))
        {
            previousUrl = Request.Params["preUrl"].ToString();
        }
    }
    if (!string.IsNullOrEmpty(Request.Params["pxid"].ToString()))
    {
        xid = Convert.ToInt16(Request.Params["pxid"].ToString());
    }
    GetDatasource(xid);
    theReport = new ReportDocument();
    theReport.Load(Server.MapPath("~/Report/Test.rpt"));
    theReport.SetDataSource(ds);
    CrystalReportViewer1.ReportSource = theReport;
    firstload = 1;
}

protected int firstload
{
    get { return (int?)ViewState["firstload"] ?? 0; }
    set { ViewState["firstload"] = value; }
}
protected void GetDatasource(int xid)
{
    if (firstload == 0)
    {
        //dsReportSanxuat ds = new dsReportSanxuat();
        SqlDataAdapter sAdp = new SqlDataAdapter();
        SqlDataAdapter sAdpDu = new SqlDataAdapter();
        ds = new dsReportSanxuat();
        sAdp = oreport.GetReportSanxuatAdp(xid);
        sAdpDu = oreport.GetReportSanxuatDuAdp(xid);
        sAdp.Fill(ds, "dtReportSanxuat");
        sAdpDu.Fill(ds, "dtReportDu");
        firstload = 1;
    }
}
protected dsReportSanxuat ds
{
    get {
        return (dsReportSanxuat)ViewState["ds"];
    }
    set
    {
        ViewState["ds"] = value;

    }
}

解决方法:

谢谢大家我的问题解决了.如果您需要答案,那是我的PC是64位基本操作系统,我只需在IIS应用程序池中“启用32位”即可.

标签:iis,crystal-reports,asp-net,c
来源: https://codeday.me/bug/20191120/2047505.html