Grails JasperService:如何将参数传递给报表?

时间:2013-03-27 08:32:02

标签: grails jasper-reports jasper-plugin

我有一个简单的Jasper报告和一个使用 jasper 插件生成报告的Grails应用程序。该报告具有一个默认值的参数。比如说,它的名字是user_id当我打印报告时,使用了默认值,结果没问题。

现在我希望能够将自己的参数值传递给报告。以下是我用来获取报告的代码:

import org.codehaus.groovy.grails.plugins.jasper.JasperExportFormat
import org.codehaus.groovy.grails.plugins.jasper.JasperReportDef
...
{   
    // def user_id = 1
    def reportDef = new JasperReportDef(name:'iResume.jasper', fileFormat:JasperExportFormat.DOCX_FORMAT)
    def file = jasperService.generateReport(reportDef).toByteArray()
}

如何将参数(例如user_id)传递给报告?

1 个答案:

答案 0 :(得分:0)

最后设法使用此代码:

    params.put("_file", "iResume.jasper")
    params.put("_format", "DOCX")
    params.put("user_id", 1)

    println params

    def reportDef = jasperService.buildReportDefinition(params, request.getLocale(), [])
    def file = jasperService.generateReport(reportDef).toByteArray()

我从Jasper taglib和控制器代码中获取了这个。这是一种Voodoo编程因为我不知道最后一个参数[]是什么,但它有效。如果有人能澄清这里发生了什么,将不胜感激。