带有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