我们希望生成报告,可以嵌入到 Web 应用程序中作为 html 页面,也可以以pdf 格式下载。因此我遇到了JasperReports,因为它认为它可以满足这些要求。
目前我们假设我们的报告将有大约 50-100 页,几乎只有直方图和一些表格。数据是从我们的数据库中通过一些昂贵的查询来检索的。
在评估了一整天之后,我对网络应用程序方面有几个疑问。
1)分页:当然我不想在一个网页中显示所有页面。我们需要分页之类的东西。但是JasperReports似乎不支持这种方法。JasperReports附带的 wepp 演示勾画了要走的路:我必须创建一个JasperPrint,它已经是完整的报告,分配了不需要的内存并执行了昂贵的查询。然后我可以显示一个页面。但是对每个页面一次又一次地这样做对我来说并不是一个合适的解决方案。
2) 如上所述,我们的报告将主要由图表组成。在将JasperPrint导出为其输出格式期间会生成图像。如果我理解一切正确,那么JR附带的ImageServlet是有能力的,但检索这些图像是
i) 从文件系统中读取生成的图像
ii) 导出器已将它们存储在会话中(因此存储在内存中)。
因为我认为我们将有很多图像 ii) 不是一种选择,如果我们想保持 webapp 的内存占用较低。但另一方面,用文件淹没文件系统也不是我能想象的最好的主意。它会在某个时候删除文件吗?
我有什么问题吗?我的理解正确吗?