我想创建一个包含自定义类的报告,如下所示:
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
。
我该如何做到这一点?
答案 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>