如何使用java代码中的JasperReports生成报告(包含许多子报告和多个波段)

时间:2012-09-07 14:07:51

标签: java jasper-reports ireport

如果我必须选择哪个版本最稳定?

我尝试使用多个版本进行报告。从 iReport (任何版本)一切都运行良好,但是当我尝试从我的java类编译它时(主报表编译成功但子报表未编译)导致 JasperCompileManager < / em>找不到“subreport.jasper”)

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

所以我用 iReport 2.0.7 编译它们并使用它们Compiled&gt;&gt;使用我的java类的唯一版本是从 iReport 2.0.7 编译的版本(问题:没有可能为另一个子报表添加新的band)。

其他人使用更高版本的 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

0 个答案:

没有答案