2012-11-07 55 views
3

我正在使用一個數據源的bean對象。數據源包含幾個properties--其中之一是,我試圖使用。通過bean的訂單項列表看起來是這樣的:Ireport使用豆類列表的子報告

​​

我想有記錄都顯示爲報告中的細節行。我知道我需要設置一個子報表,但我不確定如何設置子報表來使用當前父數據項的記錄元素作爲數據源。

回答

5

好吧..我想清楚我需要做什麼。對於次報告中,我需要指定數據源 這樣:

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{records}) 

有一對夫婦的「疑難雜症的」這裏讓我停留了一小會兒:

  • 您必須使用(只使用JRBeanCollectionDataSource)完整的類名稱將無法工作
  • 在主報告中,您必須設置的記錄java.util.List的(類型或適當的類。

由於父項中的記錄字段默認爲字符串,因此我的嘗試一直處於爆炸狀態(無可見錯誤)。一旦我將其更改爲列表,事情就開始奏效。

1

另一種解決方案,它可能有助於某人:)。

  1. 來自主報告,用於子報告集 - 使用datasorce表達式。

  2. 數據源表達式設置類似於 - 新的MySubRepClass($ F {list} .get(counter))。

  3. MySubRepClass是作爲子報表的bean數據源(類似於datasource bean)和list(主報表中的屬性)包含其實例的類。

  4. MySubRepClass應該實現的JRDataSource

格魯克!