用于网页的Java报表库

4
我正在开发一个Grails应用程序,需要显示一些报告并允许用户以最常见的格式(PDF,XML等)导出。我不想将SQL查询嵌入到报告定义中,报告逻辑集成在Grails服务中,我正在寻找的报告库应该能够在没有真实数据源的情况下处理数据集(可能是映射列表)。我使用了Jasper Reports和iReport进行测试,它们与Grails一起工作得很好,可以导出功能(PDF,XML,HTML)。但我很难将它们包含在我的页面模板中。我希望报告html中包含我的页眉、页脚、导航菜单和筛选器。我所想到的唯一解决方案是使用iframe,但我不太喜欢这种方法。Jasper Report能否满足我的要求?你知道其他任何Java报告库是否允许我将报告包含在我的HTML正文中吗?
2个回答

2

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

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

使用Grails Jasper插件,您的控制器将包含以下代码:
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报表模板样式适应我的Web应用程序样式可能会有些困难...(而且列排序也不可用,这真是令人痛苦)。 - Fabrizio D'Ammassa

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接