我正在尝试为新车和二手车创建一个包含 2 个子报告的报告。
我已经按照 JavaBeans 规范定义了一个车辆 bean。我正在考虑使用参数映射通过主报告将此数据传递给子报告,如将JRBeancollection 数据源传递到主报告和子报告帖子中所述。
到目前为止,我采取的步骤如下:
第一步-将集合作为参数传递
Map<String, Object> jasperParameter = new HashMap<String, Object>();
jasperParameter.put("new_Vehicles", createNewVehicles()); //returns a collection of vehicles.
第二步-在我的主报告中创建一个参数new_Vehicles
并将其设置为Collection
数据类型
第三步-为子报表创建数据源表达式
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{new_Vehicles})
第四步-在子报告中创建一个字段(只是为了在我添加更多字段之前让它工作) 。vehicleId
我遇到并希望得到任何帮助的问题/问题是:
a)当我编译时,它给了我一条错误消息,上面提到的数据源无法解析为一种类型。我做错了什么?
好的,所以我想我可能已经通过在数据表达式前面添加“新”来超越异常,new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{new_Vehicles})
.
但是,现在如果我将两辆新车添加到列表中,它的打印分两页,基本上是列表中每个元素一页。我的列标题在列标题带中,我的字段在详细信息带中。
关于如何防止将列表中的每个元素放在不同页面上的任何建议?