【问题标题】:Java reporting library to include in a web page包含在网页中的 Java 报告库
【发布时间】:2010-12-05 09:52:32
【问题描述】:

我正在开发一个 Grails 应用程序,我需要显示一些报告并允许用户以最常见的格式(PDF、XML...)导出它们。

我不想将 SQL 查询嵌入到报表定义中,报表逻辑已集成到 Grails 服务中,并且我正在寻找的报表库应该可以在没有真实数据的数据集(可能是地图列表)上工作数据源。

我使用 Jasper Reports 和 iReport 进行测试,它们与 Grails 一起用于导出功能(PDF、XML、HTML)非常好。但是我很难将它们包含在我的页面模板中。我想在报告 html 中包含页眉、页脚、导航菜单和过滤器。

我想到的唯一解决方案是使用 iframe,但我不太喜欢这个。

Jasper Report 能否解决我的请求?你知道任何其他允许我在 HTML 正文中包含报告的 Java 报告库吗?

【问题讨论】:

    标签: java grails reporting


    【解决方案1】:

    您可以使用g:include tag 来包含控制器的响应:

    <g:include controller="myJasper" action="showReport" 
        params="[foo: 'bar', baz: 42]" />
    

    使用Grails Jasper plugin,您的控制器将包含如下代码:

    import org.codehaus.groovy.grails.plugins.jasper.JasperExportFormat;
    import org.codehaus.groovy.grails.plugins.jasper.JasperReportDef;
    
    class MyJasperController {
        def jasperService
    
        def showReport = {
            def reportDef = new JasperReportDef(
                name: 'your_report.jasper', 
                parameters: params,
                fileFormat: JasperExportFormat.HTML_FORMAT)
    
            def report = jasperService.generateReport(reportDef)
                .toByteArray().toString("UTF-8")
    
            render report
        }
    }
    

    【讨论】:

    • 谢谢。它可以为我工作。无论如何,我认为正确设置 Jasper Report 模板的样式以适合我的 Web 应用程序样式有点困难......(并且列排序不可用,这很痛苦)
    【解决方案2】:

    有很多用于 Java 的 Web 报告 API。看看这里:

    http://java-source.net/open-source/charting-and-reporting

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 2019-08-17
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多