使用POJO作为iReport数据源

时间:2010-01-30 20:21:54

标签: java jasper-reports ireport

我有一个POJO,可以将来自各种来源的数据编译成单个对象。该对象使用单个参数进行实例化。例如:

Invoice inv=new Invoice(1239);

这将带回一张包含其他POJO的完整发票,其中包含来自各种来源的数据(例如结算和送货地址为Address个对象)。

我可以在iReport中将其用作数据源吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用JRMapCollectionDataSource从中创建数据源。

您可以从POJO对象中获取值,并在可能的情况下将它们放入集合中。

以下是构建DataSource的示例代码。

Collection<Map<String, Object>> myColl = new ArrayList<Map<String,Object>>();

Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("Field1","Value1");
map1.put("Field2","Value2");
map1.put("Field3", someObject);
myColl.add(map1);

JRMapCollectionDataSource source = new JRMapCollectionDataSource(myColl);

另一种选择是通过实施JRRewindableDataSourceJRDataSource来创建自定义数据源。