如何在grails中使用Dynamic-jasper插件限制报告?

发布于 2024-12-13 12:24:55 字数 331 浏览 1 评论 0原文

我是 grails 的新手。我需要生成 pdf 或任何其他格式的报告。我使用dynamic-jasper 插件来获取 pdf 格式的输出。我已经使用示例 http://www.grails.org/plugin/dynamic-jasper

但在该示例中,报告显示数据库中的所有值。所以我不想要报告中的所有值。而不是我需要限制报告。即,当我搜索值(通过一些 sql 查询)时,我将在列表中获得搜索值的 ao/p 。所以我需要搜索值列表的报告。所以请指导我解决这个问题

I'm new to grails.I need to generate reports in pdf or any other format.I have used dynamic-jasper plugin for getting the output in pdf format.I have generated my report using example http://www.grails.org/plugin/dynamic-jasper .

But In that example, report showing all the values that are in database.So i dont want all the values in report.Instead of i need to limit the report. I.e When i search the values(by some sql queries),I'll get a o/p of searched values in a list. So i need the report of searched value list.So please guide me to solve this problem

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软糖 2024-12-20 12:24:55

听起来您需要使用 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=your 报告名称&state=yourStateValue

It sounds like you need to make use of the dataSource property:

dataSource: this is a closure that gets the session and the params passed. Here you hook if you need more complex queries to retrieve data, i.e. based on request parameters or the logged user in the session, or just to integrate with your services or other plugins like Filter Plugin

Inside the dataSource closure is where your logic should go to limit what is shown in the report(your SQL queries would go here if you were using that). If you scroll down to the salesByStateReport in the "named reports" section on your link you are provided with an example:

dataSource = { session, params ->
        Sale.findAll('from Sale as s where s.branch.state = ? order by branch.name', [params.state])
    }

If you are using entity format, just change 'dataSource = ' to 'dataSource:' in your static reportable map.

This would be called from the URL like this using entity format:

http://localhost:8080/yourAppName/djReport/?entity=yourModelClass&state=yourStateValue

Or like this in name format:

http://localhost:8080/yourAppName/djReport/?report=your report name&state=yourStateValue

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文