在jasper报告中迭代grails中的列表元素

时间:2013-09-09 12:23:28

标签: grails jasper-reports jasper-plugin

我不知道如何在jasper报告中使用Grails呈现列表属性

我的域类看起来像这样:

class Project {


String name
String projectLeader
List divisions

String toString(){
    "$name"
}


static hasMany = [divisions : Division ]
...

分区域类来到这里

class Division {

String name
String divisionResponsible
String createDate

...

项目控制器看起来像这样

class ProjectController {


def scaffold = true

def index = {
    redirect(action : list)
}


def createReport = {

    def projectreport = Project.getAll([params.project_id])
    chain(controller:'jasper',action:'index',model:[data:projectreport],params:params)

}

}

通过定义和访问像这样的元素

,显示项目域中的数据可以正常工作
$F{name}
$F{projectLeader}

问题是访问列表元素。我找到的唯一工作方式是

 $F{divisions.[0].name}

或列表中的第二个元素

 $F{divsions.[1].name}

但这只有在列表元素的数量每次都相同且有限的情况下才有效。

如果元素的数量未知,有没有办法迭代列表元素?

或者是否有不同的可能性来访问列表元素?

1 个答案:

答案 0 :(得分:1)

它不需要那里的列表索引。 使用方式如下:

<textFieldExpression   class="java.lang.String"><![CDATA[$F{divisions.name}]]></textFieldExpression>

而不是:

 $F{divisions.[0].name}