我正在尝试弄清楚如何最好地使用图表来报告,然后是表示相同数据集的表。我需要克服摘要的定位在底部,所以打算使用子报表和table-subreports。我正在一个细节范围内试验两张桌子和一张图表。
如果我将datasourceexpression
设置为$P{REPORT_DATA_SOURCE}
,则只有图表显示数据(可能是第一个子报表类型项),表格为空。似乎数据只能被消费一次?
如果我使用数据集来查询数据库,它可以运行三次查询,每个表/图表执行一次。这将是一个巨大的开销。
显然我没有这样做,但我找不到任何一次使用同一数据集的例子。
答案 0 :(得分:3)
没有简单的答案,所以我提出了一个功能请求http://jasperforge.org/projects/jasperreports/tracker/view.php?id=5487
建议的解决方法是:
感谢jasperforge论坛上的sanda aka shertage提出这些建议。
答案 1 :(得分:0)
另一种解决方案,克隆数据集:
http://code.google.com/p/cloning/
Cloner cloner = new Cloner();
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));