Re: Add a new page dynamically
Posted: Thu Sep 24, 2015 1:12 pm
Thank you, i will verify how that works
Reporting tool and data analytics tools for creating reports and dashboards in ASP.NET, ASP.NET MVC, .NET Core, Blazor, Angular, PHP, Python, WPF, JavaScript, and Java applications.
https://forum.stimulsoft.com/
Code: Select all
//....another codes
/*
*add back page if necessary
*/
if (json.has(this.IDENTIFICADOR_ADICIONAR_VERSO)) {
try {
String relatorioVersoString = json.getString(this.IDENTIFICADOR_ADICIONAR_VERSO);
if (!relatorioVersoString.isEmpty()) {
report = this.getMontarVersoRelatorio(report, relatorioVersoString);
}
} catch (JSONException e) {
//TODO
} finally {
json.remove(this.IDENTIFICADOR_ADICIONAR_VERSO);
}
}
}
report.render();
/*
* function to add back page
* *** (relatorioOriginal = original report)
* *** (nomeRelatorioPersonalizado = name of custom report (back page));
*/
private StiReport getMontarVersoRelatorio(StiReport relatorioOriginal, String nomeRelatorioPersonalizado) {
StiReport outReport = StiReport.newInstance();
try {
//more code...
//Code hidden to preserve the company, but his only get the custom xml report (backpage).
//more code...
//get back page report
InputStream stream = new ByteArrayInputStream(relatorioXmlString.getBytes(StandardCharsets.UTF_8));
StiReport relatorioVerso = StiSerializeManager.deserializeReport(stream);
relatorioOriginal.render(); // render main report
relatorioVerso.render(); // render back page
outReport.setBookmark(relatorioOriginal.getBookmark());
outReport.getRenderedPages().clear();
for (StiPage page : relatorioOriginal.getRenderedPages()) {
outReport.getRenderedPages().add(page);
outReport.getRenderedPages().add((StiPage) relatorioVerso.getRenderedPages().get(0).clone());
}
//PDF WORKS FINE, that show main page + back page correctly, this code is test
StiExportManager.exportPdf(outReport, new FileOutputStream("C:\\temp\\out.pdf"));
//PDF WORKS FINE, that show main page + back page correctly, this code is test
} catch (BancoDadosException | IOException | SAXException | StiDeserializationException | NullPointerException | StiException e) {
e.printStackTrace();
return relatorioOriginal; // if catch error, return original report
}
return outReport; //otherwise, return edited report
}
Code: Select all
outReport.setIsRendered(true);
Code: Select all
report2.isRendered = true;