我需要将参数发送到我的JasperReport。
我首先使用compileReport
进行编译,然后调用fillReport
传递参数,还是需要按相反的顺序执行操作?
答案 0 :(得分:1)
编译和填充报告有两个不同的东西。
关于编译
Jasper报告通常使用iReport或JasperSoft Studio等IDE工具开发(您也可以使用记事本),报告保存在扩展名为.jrxml的文件中,然后运行需要编译的.jrxml
它进入.jasper
文件(你也可以在运行时编译,只保留JasperReport
对象)
可以将.java
文件与需要编译成.class
文件的Map<String,Object>
文件进行比较,然后才能运行该程序。
有关详细信息,请参阅:
How do I compile jrxml to get jasper?
关于填写
填充是指您希望使用数据填充报表设计时,数据可以来自JRDatasource或数据库Connection(报表中的查询)和JasperPrint
参数映射。填写报告后,您将获得一个JasperPrint
对象(即使这可以保存到文件中,以避免多次填写相同的报告)
关于导出
报告生成的最后一个过程是导出过程,您可以将compileReport
导出为所需的格式pdf,excel,html等。
让我们回到你原来的问题。
我首先使用JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);
进行编译吗?
如果你愿意,你可以不需要,如果你已经编译了你的报告,那么只需加载编译后的报告就更快了。
pagecontainer