2011-08-04 45 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降级到正确版本。

相关问题