如果我必须在版本之间进行选择,哪个版本最稳定?
我尝试了许多版本的报告。从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.1或4.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
。