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

标签 java jasper-reports 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 报告时,我们还必须提供数据源详细信息,这样我们的报告就很灵活,并且不会绑定(bind)到任何特定的数据库。

最佳答案

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

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

关于java - .prpt 文件(报告模板文件)是否包含数据源信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872079/

相关文章:

java - SimpleDateFormat解析后错误的unix时间戳

java - 必需属性中的 boolean 表达式

jasper-reports - 如何在交叉表中传递参数?

jasper-reports - 隐藏 jasper 报告中的字段

mysql - 如何在参数化查询中转义单引号

java - 摆脱 Android 操作栏。

Java:从 HttpContext 中获取正文?

jasper-reports - 将数据均匀分布到多列中

Pentaho ETL : Modified Javascript Step "SKIP_TRANSFORMATION" transformation Constant work logic

java - 添加迄今为止的天数