Как программно импортировать подотчет Crystal Reports в раздел отчета в Visual Studio 2010 - PullRequest
5 голосов
/ 09 июня 2011

У меня есть объект Crystal Report, определенный следующим образом:

private CrystalDecisions.CrystalReports.Engine.ReportClass rep;

Я пытаюсь импортировать подотчет в раздел 1 отчета.Я пробовал варианты следующего кода: rep.ReportClientDocument.SubreportController.ImportSubreport

Кажется, существует конфликт между:

CrystalDecisions.CrystalReports.Engine

и

CrystalDecisions.ReportAppServer

Есть кто-нибудьпрограммно импортировал подотчет в Crystal, используя VS2010?

Ответы [ 3 ]

4 голосов
/ 12 июля 2011

Для всех, кто сталкивается с этой проблемой, решение:

            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]);
0 голосов
/ 27 апреля 2012

Для тех, кто еще может нуждаться в этом. Вот решение. Попробуй и работай !!!

Вам необходимо импортировать эти ссылки:

  • CrystalDecisions.ReportAppServer.ClientDoc
  • CrystalDecisions.ReportAppServer.Controllers
  • CrystalDecisions.ReportAppServer.ReportDefModel

вот код:

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);
0 голосов
/ 11 июля 2011

Динамическое добавление подотчетов в Crystal Reports не поддерживается.

...