2011-09-28 61 views
9

我試圖找出如何最好地使用圖表做報表,然後使用代表相同數據集的表格。我需要克服總結的定位在底部,所以打算使用子報表和子報表。我正在一個細節樂隊中嘗試兩張表格和一張圖表。如何在JasperReports/iReport中使用相同的數據源兩次

如果我將datasourceexpression設置爲$P{REPORT_DATA_SOURCE},則只有圖表顯示數據(可能是第一個子報表類型項),並且表是空的。似乎數據只能被使用一次?

如果我使用數據集來查詢它的數據庫,但它執行三次查詢,每個表/圖一次。這將是一個巨大的開銷。

很明顯,我沒有這樣做,但我找不到任何使用同一個數據集的例子。

回答

3

有沒有簡單的答案,所以我提了一個功能請求http://jasperforge.org/projects/jasperreports/tracker/view.php?id=5487

建議的解決方法是:

  • 實現自定義查詢執行器從緩存數據源
  • 產生rewindable的檢索數據基於檢索結果集的數據源

感謝sanda又名sheasage on jasperfo rge論壇提供這些建議。

+0

如何生成可回退的數據源? – Ricardo

+0

我沒有這樣做,甚至看着它,但我相信你實現net.sf.jasperreports.engine.JRRewindableDataSource請參閱[JasperReports - 數據源示例(版本4.7.0)](http://jasperreports.sourceforge.net /sample.reference/datasource/index.html) – KCD

0

的備選解決方案,克隆數據集:

http://code.google.com/p/cloning/

克隆拷貝機=新克隆();

ArrayList clone = cloner.deepClone(getSomeArrayList());

final JRDataSource ds = new JRBeanCollectionDataSource(AnotherBean);

HashMap parameters = new HashMap();

parameters.put(「PARAM_A」,new JRBeanCollectionDataSource(getSomeArrayList()));

parameters.put(「PARAM_B」,new JRBeanCollectionDataSource(clone));

相關問題