J'essaye de compiler un sous-rapport à la volée de Java. J'ai placé l'expression du sous-rapport dans le rapport MAIN comme suit.Comment compiler un sous-rapport pendant que le rapport principal s'exécute dans ireport?
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[SubReportCompiler.getCompiledReport("reportId")]]></subreportExpression>
Mon code subreportcompiler est la suivante:
SubReportCompiler public class {
private static final String JR_XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<!DOCTYPE jasperReport PUBLIC \"-//JasperReports//DTD Report Design//EN\" \"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd\">";
public static JasperReport getCompiledReport(String reportId)
{
Report report = Report.getReportObject(reportId, applicationId);
String jasperXML=JR_XML_HEADER + report.getJASPERXML();
InputStream jrXMLStream = new ByteArrayInputStream(jasperXML.getBytes());
JasperReport jReport;
try {
jReport = JasperCompileManager.compileReport(jrXMLStream);
} catch (JRException e) {
throw new ReportException(e.getMessage(), e);
}
catch (Exception e)
{
throw new ReportException(e.getMessage(), e);
}
return jReport;
}
}
pendant que je suis en train d'exécuter le rapport principal de java. Je reçois l'erreur suivante.
(java.lang.String) Pas de ces biens: SubReportCompiler pour la classe: report2_1280833699753_269232
Ai-je besoin d'enregistrer l'une des propriétés? Comment compiler le sous-rapport à la volée depuis java pendant l'exécution du rapport principal?
Ça marche ... merci Andrey ... :) – Jagadesh