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

时间:2010-05-20 08:26:58

标签: java jasper-reports pentaho reporting-tools

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

使用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报告时,我们也必须提供数据源详细信息,这样我们的报告就是灵活的,不受任何特定数据库的约束。

2 个答案:

答案 0 :(得分:2)

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

你可能会从论坛上获得更好的答案。 forums.pentaho.org

答案 1 :(得分:1)

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

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

在Pentaho BI-Server上运行的所有报告的99.99% NOT 需要手动替换要运行的数据源。剩下的0.01%是古代报告引擎版本的遗留报告。