代码之家  ›  专栏  ›  技术社区  ›  Amit

Pentaho-报告工具-prpt文件(报告模板文件)也包含数据源信息吗?

  •  1
  • Amit  · 技术社区  · 14 年前

    我是新的Pentaho报告工具。我有以下问题:

    当我使用Pentaho报表设计器创建报表时,它输出一个扩展名为.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报告时,我们还必须提供数据源详细信息,这样我们的报告才是灵活的,并且不绑定到任何特定的数据库。

    2 回复  |  直到 13 年前
        1
  •  2
  •   Codek    14 年前

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

    你可能会更快地从论坛得到更好的答案。论坛.pentaho.org

        2
  •  1
  •   Thomas Morgner    14 年前

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

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

    在Pentaho BI服务器上运行的所有报表中,99.99%的报表 不是 需要手动替换数据源才能运行。剩下的0.01%是来自古代报告引擎版本的遗留报告。