1

如果我必须在版本之间进行选择,哪个版本最稳定?

我尝试了许多版本的报告。从iReport(任何版本)一切正常,但是当我尝试从我的 java 类编译它时(主报告编译成功,但子报告未编译导致JasperCompileManager找不到“subreport.jasper”)

JasperDesign jasperDesign = JRXmlLoader.load("C://report/reportPI.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

所以我用iReport 2.0.7编译它们并使用它们 Compiled >> 与我的 java 类一起工作的唯一版本是从iReport 2.0.7编译的版本(问题:不可能为另一个子报表添加新波段)。

其他人用更高版本的iReport编译文件,例如4.5.14.7.0

在这条线上崩溃

   JasperReport jasperReport =(JasperReport) JRLoader.loadObject("C:\\report/reportPI.jasper");

返回

cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field 
net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type
net.sf.jasperreports.engine.JRParagraphContainer in instance of 
net.sf.jasperreports.engine.base.JRBaseParagraph 

在论坛上,他们说这是 jar 问题,其他人说这是设计错误。但就我而言,这是另一回事,因为我用罐子尝试了一切。

实际上我找到了一个解决方案(通过测试),但它有点复杂。我使用iReport 2.0.7编译子报表和我用iReport 4.5.1设计的主报表(包含许多波段和许多子报表),我通过第一个代码编译主报表。

它可以工作,但是当我想在 OneSubreport 下做很多子报表时。我回到同样的问题。

好吧,我认为问题很详细,但这是必要的

如果有人有一个所有情况都适用的稳定版本,请帮助

经过更多测试..

我试图通过使用在文件中编译 subreport.jrxml

JasperDesign jasperDesign1 = JRXmlLoader.load("C://report/report74.jrxml");
JasperCompileManager.compileReportToFile(jasperDesign1, "C://report");

但反应Access denied to save

4

0 回答 0