我正在开发Grails应用程序,我需要显示一些报告,并允许用户以最常见的格式(PDF,XML ...)导出它们。
我不想将SQL查询嵌入到报表定义中,报表逻辑已集成到Grails服务中,而我正在寻找的报表库应该可以处理数据集(可能是地图列表)而不是真实的数据源。
我使用Jasper Reports和iReport进行测试,它们与Grails一起用于导出功能(PDF,XML,HTML)。但我很难将它们包含在我的页面模板中。我想在报告html中有我的页眉,页脚,导航菜单和过滤器。
我想到的唯一解决方案是使用iframe,但我不太喜欢这个。
贾斯珀报告可以解决我的要求吗?你知道其他任何允许我在我的HTML正文中包含报告的Java报告库吗?
答案 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。看看这里: