我是grails的新手。我需要以pdf或任何其他格式生成报告。我使用了动态jasper插件来获取pdf格式的输出。我使用示例http://www.grails.org/plugin/dynamic-jasper生成了我的报告。
但是在那个例子中,报告显示了数据库中的所有值。所以我不想要报告中的所有值。而不是我需要限制报告。 I.e当我搜索值(通过一些sql查询)时,我将在列表中获得搜索值的o / p。所以我需要搜索值列表的报告。所以请指导我解决这个问题
答案 0 :(得分:0)
听起来你需要使用dataSource属性:
dataSource:这是一个获取会话和params传递的闭包。如果您需要更复杂的查询来检索数据(例如,基于请求参数或会话中记录的用户),或者只是为了与您的服务或其他插件集成,例如Filter Plugin
,您可以在这里挂钩
在dataSource闭包中,你的逻辑应该限制报告中显示的内容(如果你使用的话,你的SQL查询会在这里)。如果您在link的“命名报告”部分向下滚动到salesByStateReport,则会向您提供一个示例:
dataSource = { session, params ->
Sale.findAll('from Sale as s where s.branch.state = ? order by branch.name', [params.state])
}
如果您使用的是实体格式,只需在静态可报告地图中将'dataSource ='更改为'dataSource:'。
这将使用实体格式从URL调用:
http://localhost:8080/yourAppName/djReport/?entity=yourModelClass&state=yourStateValue
或者像名称格式一样:
http://localhost:8080/yourAppName/djReport/?report=your报告名称& state = yourStateValue