当我使用 Pentaho Report Designer 创建报告时,它会输出一个扩展名为 .prpt 的报告文件。之后,我在互联网上找到了一个示例,其中使用以下代码以 html 格式显示报告:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
String reportPath = "file:" +
this.getServletContext().getRealPath("sampleReport.prpt");
try {
Resource res = manager.createDirectly(new URL(reportPath), MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
HtmlReportUtil.createStreamHTML(report, response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
报告打印成功。因此,由于我们没有在此处指定任何数据源信息,我认为 .prpt 文件中包含该信息。
如果这是真的,那么 Jasper 是不是比 Pentaho 更好的报告工具,因为当我们显示 Jasper 报告时,我们还必须提供数据源详细信息,这样我们的报告就很灵活,并且不绑定到任何特定的数据库。