1

当我使用 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 报告时,我们还必须提供数据源详细信息,这样我们的报告就很灵活,并且不绑定到任何特定的数据库。

4

2 回答 2

2

没有。数据源可以存储在 prpt 中,但也可以传递给报表。通常的方法是简单地使用 JNDI,以便您可以将相同的报告部署到多个测试/开发/生产环境。

您可能会从论坛获得更好更快的答案。论坛.pentaho.org

于 2010-05-21T07:35:32.490 回答
1

PRPT 文件通常包含运行报告所需的所有信息。您可以通过修改从 ResourceManager 返回的 MasterReport 对象来提供自己的数据源。

但是,我还必须看到这种操作实际上有意义的有效用例。要在运行时为 SQL 数据源提供连接信息,您通常使用 Web 应用程序或 J2EE 服务器的 JNDI 子系统。

在 Pentaho BI-Server 上运行的所有报表中有 99.99%不需要手动替换数据源即可运行。剩下的 0.01% 是来自古老报告引擎版本的遗留报告。

于 2010-11-30T01:57:38.190 回答