我有一个简单的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
)传递给报告?
答案 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编程因为我不知道最后一个参数[]
是什么,但它有效。如果有人能澄清这里发生了什么,将不胜感激。