我有一个POJO,可以将来自各种来源的数据编译成单个对象。该对象使用单个参数进行实例化。例如:
Invoice inv=new Invoice(1239);
这将带回一张包含其他POJO的完整发票,其中包含来自各种来源的数据(例如结算和送货地址为Address
个对象)。
我可以在iReport中将其用作数据源吗?
答案 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);
另一种选择是通过实施JRRewindableDataSource
或JRDataSource
来创建自定义数据源。