目标是以下结构
Static Text
--------------------
Category 1
SubCategory 1_1
SubCategory 1_2
...
Category 2
SubCategory 2_1
....
...
--------------------
StaticText
要获取动态数据,我使用以下bean结构
public class BeanFactory {
public static Collection getVehicleData() {return the Collection}
}
类别类
public class VehicleData {
private String category;
private List<WarningData> warnings;
}
WarningData类是POJO。所以有人能给我一个提示,我怎么能得到这种结构?
更新 为了清楚这一点。我如何迭代子类别?我成功完成了类别的迭代,但我不知道如何迭代子类别中的每个类别。
答案 0 :(得分:0)
解决方案是Lisa评论的一种暗示。我没有在问题中使用数据结构,而是创建了一个“扁平”结构,如下所示:
public class VehicleData2 {
private String category;
private String categoryIconPath;
private String iconPath;
private String headline;
private String warning;
}
最后三个属性封装在一个新类WarningData中。但我无法迭代抛出这个警告数据列表,所以在我的解决方案中有e。 G。类别中的冗余。但是使用这种结构,可以对类别使用报告组,并将警告数据放入jasperreport的详细信息部分。
答案 1 :(得分:0)
对记录的子数据进行迭代的唯一两种方法似乎是子报表和表。
每个数据源都是通过平面列表的迭代器。您的报告仅包含一个重复的概念,即对数据源中的每个记录重复一个 Detail 部分。表格和子报表都有自己的数据源(可能完全取决于包含报表的当前迭代),并相应地重复其 Detail 部分。由于它们可以嵌套,因此从理论上讲,Jasper允许根据需要进行任意循环。只是您需要为每个循环引入一个子报告或一个表: