0
我想從java編譯一個子報告。 我把子報表表達式放在MAIN報告中,如下所示。如何在主報表在ireport中執行時編譯子報表?
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[SubReportCompiler.getCompiledReport("reportId")]]></subreportExpression>
我subreportcompiler代碼如下:
公共類SubReportCompiler {
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;
}
}
當我試圖執行從Java的主要報告。我收到以下錯誤。
(java.lang.String中)沒有這樣的屬性:SubReportCompiler類:report2_1280833699753_269232
我是否需要註冊任何屬性?如何在執行主報表時從java編譯子報表?
It works ... thanks Andrey ... :) – Jagadesh 2010-11-17 07:04:34