2011-08-04 44 views
0

我試圖將適度複雜的報告導入到我的Java應用程序中。該報告包括子查詢,樣式模板(jrtx)和圖像。一切都在iReport的偉大工程,但是當我試圖在應用程序運行報告它給了我下面的錯誤:將JasperReport從iReport導入到Java應用程序時出現異常

exception 
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML 

root cause 
net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML 

root cause 
org.xml.sax.SAXParseException: Element type "paragraph" must be declared. 

我使用iReport的版本4.0.2(對4.0.1的兼容性模式),開發報告和net.sf.jasperreports 4.0.1在我的應用程序上運行報告。注意:iReport版本匹配jasperReport版本。

回答

0

顯然,iReport的4.0.1兼容模式不能正常工作。 iReport 4.0.2在處理某些屬性時會插入一個標籤。 JasperReport 4.0.1中不存在<paragraph>標記。如果我在報告中嵌入了任何段落樣式而不是樣式模板,我會在編譯時捕獲這些。運行時會考慮模板。

我將我的模板是這樣的:

From: 
<jasperTemplate> 
... 
    <style name="in-detail-fields"> 
    <paragraph leftIndent="3" rightIndent="3"/> 
    </style> 
... 
</jasperTemplate> 

To: 
<jasperTemplate> 
... 
    <style name="in-detail-fields" leftIndent="3" rightIndent="3" /> 
... 
</jasperTemplate> 

不幸的是,iReport的4.0.2不能正確改變這樣的模板後解釋模板。 :-(更好的解決方案可能是將iReport降級到正確版本。

相關問題