2013-09-25 35 views
2

在我的一個報告要求中,我需要顯示具有自定義數據的多行。JasperReports:迭代JRXML中的列表

對於自定義數據,我使用了REPORT_SCRIPTLET功能,它使用數據對象填充List。直到這一點一切正常。

如何將上面填充的列表傳遞給JRXML,並遍歷行以在報表中顯示它們?

我沒有搜索,發現很少的帖子,並根據他們,我應該使用JR數據源SubReport。

請幫助實現目標。我無法找到上述問題的具體樣本或語法。

在此先感謝!

問候,

拉瓦特


謝謝你的片段。

顯然,我也使用相同的語法,但我對「listNameWhatEverYouWantToPass」感到困惑。

在我的情況下,「listNameWhatEverYouWantToPass」是類TestObject的對象列表,其中包含具有setter和getter方法的4個字段。

它在JRXML定義爲

<variable name="listNameWhatEverYouWantToPass" class="java.util.List" calculation="System"/> 

「listNameWhatEverYouWantToPass」將投注是一個scriptlet類afterGroupInit函數內部設置爲

List<TestObject> testList = new List<TestObject>() ; // Is it correct?? 

// add TestObjects to the list 

this.setVariable("listNameWhatEverYouWantToPass",testList); 

如何從indivisual對象的訪問列表中的數據在subreport.jasper?

感謝,

拉瓦特

+0

您可以使用子報表顯示您的數據。爲此,您可以使用net.sf.jasperreports.engine.data.JRBeanCollectionDataSource在子報表中發送列表。 – user1791574

+0

嗨, 你能舉個例子嗎? – rawat

回答

0

這裏是主報表添加子報表代碼。

<subreport> 
       <reportElement uuid="cb31b535-0484-4a63-a1af-b6737d937474" positionType="Float" x="0" y="60" width="515" height="15"/> 
       <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(listNameWhatEverYouWantToPass)]]></dataSourceExpression> 
       <subreportExpression><![CDATA["/path/to/subreport.jasper"]]></subreportExpression> 
      </subreport> 

希望它能幫助你。