我有一个jasper报告。在主要报告的内部我添加了一个子报告。我使用java类传递集合和参数(不直接使用sql查询)。它正在成功编译。
但是在运行它时只显示主报告。它没有显示子报告。它也没有出现任何错误。它只是给那个地方一些空的空间。 谁能告诉我如何解决这个问题? 在jasper中添加子报表时我必须遵循的所有规则是什么?
答案 0 :(得分:1)
也许这会有所帮助 - >发送java.util.List
参数:
答案 1 :(得分:0)
假设您将数据作为Java Bean集合传递给报表,那么我假设您有一个字段java.util.List
将用于提供子报表。
您的原始bean将是:
public class ParentBean{
int id;
String fatherName;
List<ChildBean> childrenList;
//setters and getters goes here
}
调用主报表时,应添加三个字段,其中最后一个是List类型。
选择子报表,打开“属性”对话框,在“连接/数据源表达式”中,选择使用数据源表达式,输入以下内容:
new JRBeanCollectionDataSource($F{childrenList})
在子报告中,使用ChildBean
。
注意:对话框名称来自旧的iReport版本,现在可能已更改。
答案 2 :(得分:0)
但你有预览子报告吗?可能会出现一些错误或单独填写子报告中的任何内容......
答案 3 :(得分:0)
1.创建DataSet 2.创建列表对象 3.列表对象中带有参数和连接的Map字段。