0

我有一个带有一个条形图和一个表格的报告。这两个元素由从我的Java应用程序传递到报告的对象列表填充。

现在我想将这两个元素放在两个不同的子报表中,但我不知道如何将对象列表传递给子报表。我已将每个对象的字段添加为主报表中的字段和子报表中的参数,但它不起作用。

谁能帮我解决这个问题?

4

1 回答 1

0

像这样的东西:

将集合作为参数传递给主报表,并在 DataSource 中将此参数用于子报表:

// 主报告的java代码

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listOfObject);
Map<String, Object> params = new HashMap<String, Object>();
params.put("myList", listOfObject);
jasperPrint = JasperFillManager.fillReport(jasperReport, params, ds);

//结束java代码

(或许

JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource())

如果您不需要在主报告中显示数据)

在 main.jrxml 报告参数 myList 中定义为 java.util.Collection

将子报表添加到主报表(到汇总带中)
在主报表中设置子报表属性:
连接类型 = 使用数据源表达式
数据源表达式 = new JRBeanCollectionDataSource($P{myList})

在子报表中定义所需字段(基于 listOfObjects)。

于 2013-05-29T13:07:59.920 回答