如何在JRBeanCollectionDataSource上调用* this *?

时间:2013-05-14 12:07:25

标签: list jasper-reports this

我将图片列表传递给我的报告。我想在报告中的 List 对象中进行渲染。

之前我使用过JasperReports列表,并且我知道我可以使用$F{}标记引用列表中元素的每个字段,但是如何引用列表本身的元素?

基本上我想使用$F{this}$F{self}之类的内容。有这样的事吗?

1 个答案:

答案 0 :(得分:3)

是的,您可以使用别名 _THIS

来自 JasperReports终极指南的引用:

可以使用特殊字段映射来访问当前JavaBean对象本身。因此,当字段使用_THIS作为描述或名称时,数据源将返回当前JavaBean对象作为字段值。当报表需要从当前对象中提取一些与JavaBeans标准之后的属性不对应的数据时(例如,数据由带有一些参数的方法返回),或者当前对象需要时,这非常有用被传递给作为其中一个报表表达式中调用的方法的参数。

使用_THIS

的样本

jrxml 文件的片段:

<subDataset name="dataset1">
    <field name="city" class="java.lang.String">
        <fieldDescription><![CDATA[_THIS]]></fieldDescription>
    </field>
</subDataset>

JavaBean的片段:

public class AddressBean {

    private String city;
    private Integer id;
    private PersonBean person;

    public AddressBean getAddress() {
        return this;
    }

    public String getCity() {
        return city;
    }

    public Integer getId() {
        return id;
    }

JasperReports终极指南 here

您还可以在How to access the root element of the datasource in jasperreports问题上通过 GenericJon 阅读答案。