Java报告库包含在网页中

时间:2010-12-05 09:52:32

标签: java grails reporting

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

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

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

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

贾斯珀报告可以解决我的要求吗?你知道其他任何允许我在我的HTML正文中包含报告的Java报告库吗?

2 个答案:

答案 0 :(得分:2)

您可以使用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
    }
}

答案 1 :(得分:0)

Java有很多网络报告API。看看这里:

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