Anyone know how to solve this problem?
References used:
Stimulsoft.Base - 2018.2.1.0
Stimulsoft.Report - 2018.2.1.0
Stimulsoft.Design - 2018.2.1.0
Code: Select all
public void CreateReport(FilterData filter)
{
StiReport report = new StiReport();
try
{
report.NeedsCompiling = false;
report.IsRendered = true;
report.RenderedPages.Clear();
var data = _logic.SearchData(filter);
var data1 = data.Where(x => x.Code == 1).ToList();
if (data1.Count > 0) MergeReports(report, data1, filter, templateType);
var data2 = data.Where(x => x.Code == 2).ToList();
if (data2.Count > 0) MergeReports(report, data2, filter, templateType);
report.ExportDocument(StiExportFormat.Pdf, "FileName.pdf");
}
catch (Exception ex)
{
throw new ex.Message;
}
finally
{
report.Dispose();
}
}
private static void MergeReports(
StiReport report,
Data data,
DataFilter filter,
byte templateType)
{
StiReport auxReport = new StiReport();
try
{
auxReport.Load(templateType == 1 ? Resources.Resource.Template1 : Resources.Resource.Template2);
auxReport.RegBusinessObject("Filter", filter);
auxReport.RegBusinessObject("Data", data);
auxReport.Compile();
auxReport.Render();
foreach (StiPage page in auxReport.CompiledReport.RenderedPages)
{
page.Report = report;
page.NewGuid();
report.RenderedPages.Add(page);
}
}
catch (Exception ex)
{
throw new ex.Message;
}
finally
{
auxReport.Dispose();
}
}