JasperReports字段的自定义类

时间:2012-01-17 19:50:49

标签: jasper-reports pojo

我想创建一个包含自定义类的报告,如下所示:

public class Class1 {
  String cl1_f1;
  String cl1_f2;
}

public class Class2 {
   String cl2_f1;
   String cl2_f2;
   Class1 cl1_ob1;
}

现在我通过字段和JRBeanCollectionDataSource在报告中传递 Class2

<subDataset name="myitems">
    <field name="cl2_f1" class="java.lang.String"/>
    <field name="cl2_f2" class="java.lang.String"/>
    **<field name="cl1_ob1" class="Class2"/>**  
</subDataset>

对于第三个参数,我想提一下它的一个字段。例如:cl1_ob1.cl1_f1

我该如何做到这一点?

1 个答案:

答案 0 :(得分:12)

在Jasper报告设计中,该字段将定义如下:

<field name="cl1_ob1" class="Class1">
   <fieldDescription><![CDATA[cl1_ob1]]></fieldDescription>
</field>

Class1的2个变量可以通过调用getter方法(如果有的话)来访问,或者你可以直接使用变量,具体取决于它的访问权限。例如, $ F {cl1_ob1} .getCl1_f1()可用作文本字段表达式,如下所示:

<textField>
   <reportElement x="36" y="26" width="235" height="20"/>
   <textElement textAlignment="Center" verticalAlignment="Middle"/>
   <textFieldExpression><![CDATA[$F{cl1_ob1}.getCl1_f1()]]></textFieldExpression>
</textField>