我有一个Crystal Report对象,定义如下:
private CrystalDecisions.CrystalReports.Engine.ReportClass rep;
我正在尝试将SubReport导入报告的第1部分。我尝试过以下代码的变体: rep.ReportClientDocument.SubreportController.ImportSubreport
之间似乎存在冲突:
CrystalDecisions.CrystalReports.Engine
和
CrystalDecisions.ReportAppServer
是否有人使用VS2010以编程方式在Crystal中导入子报表?
答案 0 :(得分:4)
对于遇到此问题的任何其他人,解决方案是:
CrystalDecisions.CrystalReports.Engine.ReportClass rep;
ReportClientDocumentWrapper doc = (ReportClientDocumentWrapper)rep.ReportClientDocument;
CrystalDecisions.ReportAppServer.ReportDefModel.Section sec = doc.ReportDefController.ReportDefinition.ReportHeaderArea.Sections[0];
doc.SubreportController.ImportSubreport("SubReport", csr.ReportFileName, sec);
rep.OpenSubreport("SubReport").SetDataSource(csr.ds.Tables[0]);
答案 1 :(得分:0)
对于仍然可能需要此人的人。这是解决方案。试试吧!
您需要导入这些参考文献:
这是代码:
ReportDocument rpt = new ReportDocument();
rpt.Load("reportPath"));
rpt.SetDataSource(dt);
在主报表中,您必须有一个子报表,并使用此代码从动态路径重新导入
CrystalDecisions.ReportAppServer.ReportDefModel.Section sec = rpt.ReportClientDocument.ReportDefController.ReportDefinition.PageHeaderArea.Sections[0];
rpt.ReportClientDocument.SubreportController.ImportSubreport("subreportname", "subreportpath", sec);
答案 2 :(得分:-3)
截至目前,Crystal Reports不支持动态添加子报告。