我创建了一个包含一些子报告的报告。我使用下面的代码填充子报告:
ReportDocument rep = new ReportDocument();
rep.Load(Application.StartupPath + "\\" + "salonreport.rpt"); rep.Subreports["rptsalesbydaytypecashdetails"].SetDataSource((DataTable)rptsalesbydaytypecashdetailsDataTable1);
对于上面的代码,引发错误:对象引用未设置为对象的实例。
另一种方法是
salonreport rep = new salonreport();
rep.Load(Application.StartupPath + "\\" + "salonreport.rpt"); rep.Subreports["rptsalesbydaytypecashdetails"].SetDataSource((DataTable)rptsalesbydaytypecashdetailsDataTable1);
对于他我收到此错误:无法在清单资源中找到报告。请构建项目,然后重试。
答案 0 :(得分:0)
尝试下面的代码。我相信你的问题在于文件路径。请使用系统中的有效文件路径替换我的代码中的文件路径。
public void ReportLoad()
{
ReportDocument reportDocument = new ReportDocument();
string filePath = "C:\Projects\Application\Report\CrystalReport.rpt"; reportDocument.Load(filePath);
reportDocument.Load(filePath);
crystalReportViewer.ReportSource = reportDocument;
reportDocument.OpenSubreport("SubReport.rpt")
}
答案 1 :(得分:0)
您可以使用Server.MapPath(strReportName)来指定路径。
ReportDocument rd = new ReportDocument();
string strRptPath = Server.MapPath(strReportName);
//Loading Report
rd.Load(strRptPath);
// Setting report data source
if (rptSource != null && rptSource.GetType().ToString() != System.String")
rd.SetDataSource(rptSource);
//setting report source for subreports.
rd.Subreports[0].SetDataSource(subRptSource1);
rd.Subreports[1].SetDataSource(subRptSource2);