我有一份碧玉报告。在该主报告中,我添加了一份子报告。我正在使用 java 类传递集合和参数(不直接使用 sql 查询)。它编译成功。
但是在运行时它只显示主报告。它没有显示子报告。而且它也没有出错。它只是给那个地方一些空白空间。谁能告诉我如何解决这个问题?在 jasper 中添加子报表时我必须遵循哪些规则?
我有一份碧玉报告。在该主报告中,我添加了一份子报告。我正在使用 java 类传递集合和参数(不直接使用 sql 查询)。它编译成功。
但是在运行时它只显示主报告。它没有显示子报告。而且它也没有出错。它只是给那个地方一些空白空间。谁能告诉我如何解决这个问题?在 jasper 中添加子报表时我必须遵循哪些规则?
1.创建数据集 2.创建列表对象 3.映射字段与列表对象中的参数和连接。
假设您将数据作为 Java Beans 集合传递给报表,那么我将假设您有一个字段作为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 版本,现在可能会更改。
但是你预览过子报告吗?可能会有一些错误或单独在子报告中填写任何内容......