2010-03-25 141 views
1

我有一个jasper报告。在那个主要报告的内部,我添加了一个子报告。我使用java类传递集合和参数(不直接使用sql查询)。它是编译成功。Jasper Sub报告没有在主要报告中显示

但是,它运行时只显示主报告。它没有显示子报告,并且也没有发生任何错误。它只是给那个地方留出一些空的空间。 任何人都可以告诉我如何解决这个问题吗? 在jasper中添加子报表时,我必须遵守哪些规则?

+1

对不起,你的问题太广泛了。去阅读一些文章,还有一本关于JasperReports的书,并且一旦遇到具体问题就会回来。 – 2010-03-25 10:45:55

回答

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版本,现在可能已更改。

0

但是你有预览子报告吗?可能会有一些错误或单独的子报告填充什么...

0

1,创建数据集 2。创建列表对象 3.在List对象中带有参数和连接的Map域。