2012-01-17 54 views
5

我想用一個自定義類創建報告如下:自定義類的JasperReports場

public class Class1 { 
    String cl1_f1; 
    String cl1_f2; 
} 

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

現在我通過的Class2在報告中穿過田野和JRBeanCollectionDataSource。

<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

我怎樣才能做到這一點?通過調用getter方法(如果有的話),或者你可以使用

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

及1級的2個變量可以被訪問:

回答

10

在碧玉報表設計,現場將被定義爲如下直接變量,取決於它的訪問權限。對於實施例,$ 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> 
+0

哎呀!棒極了!!多謝兄弟。它工作沒有任何問題! – venomrld 2012-01-18 05:06:26

+1

@bchetty我得到了java.lang.ClassNotFoundException:將不會加載默認情況下,從包裝(1類) – 2013-10-22 19:34:01

+0

@JohnB用於拋出java.lang.ClassNotFoundException爲me.thanks bchetty提供全面path.It的工作完美班。 – 2014-02-01 12:10:35