0

我有一个简单的 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到报告中?

4

1 回答 1

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 编程,因为我不知道最后一个参数[]是干什么用的,但它确实有效。如果有人能澄清这里发生了什么,将不胜感激。

于 2013-03-27T10:17:21.290 回答