我是 grails 的新手。我需要生成 pdf 或任何其他格式的报告。我使用 dynamic-jasper 插件来获取 pdf 格式的输出。我使用示例http://www.grails.org生成了我的报告/插件/动态碧玉 。
但是在那个例子中,报告显示了数据库中的所有值。所以我不想要报告中的所有值。而不是我需要限制报告。即当我搜索值(通过一些 sql 查询)时,我将在列表中获得搜索值的 ao/p。所以我需要搜索值列表的报告。所以请指导我解决这个问题
我是 grails 的新手。我需要生成 pdf 或任何其他格式的报告。我使用 dynamic-jasper 插件来获取 pdf 格式的输出。我使用示例http://www.grails.org生成了我的报告/插件/动态碧玉 。
但是在那个例子中,报告显示了数据库中的所有值。所以我不想要报告中的所有值。而不是我需要限制报告。即当我搜索值(通过一些 sql 查询)时,我将在列表中获得搜索值的 ao/p。所以我需要搜索值列表的报告。所以请指导我解决这个问题
听起来您需要使用 dataSource 属性:
dataSource:这是一个获取会话和传递参数的闭包。如果您需要更复杂的查询来检索数据,即基于请求参数或会话中的登录用户,或者只是为了与您的服务或其他插件(如过滤器插件)集成,您可以在这里挂钩
在 dataSource 闭包内部是你的逻辑应该去限制报告中显示的内容(如果你使用它,你的 SQL 查询会在这里)。如果您向下滚动到链接上“命名报告”部分中的 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=您的报告名称&state=yourStateValue