grails - 在Grails的Jasper中将集合用作参数

我正在尝试学习如何使用jasper插件从grails应用程序中运行Jasper。在插件目录页面[http://grails.org/plugin/jasper]上,有相当深入的教程。应该向您展示如何扩展“racetrack”示例以使用jasper插件。我发现的问题是,由于本教程中未显示“registrations.jrxml”,也不包含该插件的源代码下载-我无法弄清楚如何设置jrxml文件才能正常工作从grails向其发送数据。

现在,我的应用程序的 Controller 正在将HashMap的ArrayList发送回 View ,然后使用“g:each”将其转换为html表。它不是域的简单表示,HashMap是由几个不同的数据源构造而成的。我还需要通过Jasper将此数据导出到XLS文件。现在,我可以将ArrayList作为参数发送给jrxml,但是在将List(一行)的每个成员与jrxml中的Detail关联时,我却一事无成。

所以对于最简单的情况来说,我有一个 Controller ,该 Controller 提供了一个带有ArrayList的字符串的 View

def index = { 
        def people = ["Donald", "Richard", "Raymond", "Samir", "Cyrus"]

        [people: people, guy: "Frank"]
    }

以及将ArrayList作为参数传递给Jasper的 View 。
<g:jasperReport format="PDF" jasper="don2" name="Don Report">
    <input type="hidden" name="name" value="${guy}"/>
    <input type="hidden" name="list" value="${people}"/>
  </g:jasperReport>

我需要在jrxml中做什么以将ArrayList用作我的数据源?

最佳答案

您需要 JRBeanCollectionDataSource 。在 Controller (或您的自定义标签)中构造它。您不能直接在gsp中执行此操作。

https://stackoverflow.com/questions/7301907/

相关文章:

grails - 在Grails 1.1.1中安装Ivy插件:找不到Ivy zip文件

grails - 在选项卡中,我有两个域

javascript - 使用Ajax添加TinyMCE实例-Grails

grails - 在对象已经与该类持久化之后修改该类

jakarta-ee - 将Grails应用程序作为一个war文件部署在另一个Java EE Web

grails - 为什么Save无法在Grails中使用模拟域?

grails - 同一页上有多个表和可排序列的问题

hibernate - Grails GORM映射尝试访问不存在的字段 “class”

hibernate - hibernate 缓存问题

grails - 使用类为M:M关系建模时,Grails 2.0在Bootstrap中服务于不同的行