JasperReport...你首先要做什么编译或使用参数填充?

JasperReport... What do you do First Compile or fill using parameters?

我需要将参数发送到我的 JasperReport。

我是先使用 compileReport 编译它然后调用传递参数的 fillReport 还是我需要以相反的顺序做事?

编译和填写报告是两件不同的事情。

关于编译

Jasper 报表通常使用 IDE iReport 或 JasperSoft Studio 等工具开发(您也可以使用记事本),报表保存在扩展名为 .jrxml 的文件中,在 运行 之前宁 .jrxml 你需要把它编译成一个 .jasper 文件(你也可以在 运行 时间编译并且只保留 JasperReport 对象)

可以和.java文件比较,需要编译成.class个文件才能运行程序。

有关详细信息,请参阅:

How do I compile jrxml to get jasper?

关于填写

填充是当您想要用数据填充报表设计时,数据可以来自 JRDatasource or a database Connection(报表中的查询)和 Map<String,Object> 参数映射。填写报告后,您会得到一个 JasperPrint 对象(甚至可以将其保存到文件中,以避免多次填写相同的报告)

关于导出

报告生成的最后一个过程是导出过程,在这里您可以将 JasperPrint 导出为您想要的格式 pdf、excel、html 等

所以让我们回到你原来的问题。

我先用compileReport编译吗?

如果您愿意,可以,但是如果您已经编译了报告,则不需要,在这种情况下,只需加载更快的编译报告。

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);