使详细信息带中的子报表的所有迭代汇集在一起​​。在打印下一个细节带之前

时间:2015-11-02 12:24:11

标签: jasper-reports subreport

请帮助我,我有项目的截止日期。

SubReport中有detailBand1List dataSource要进行迭代。

第二个detailBand2包含一些静态数据,然后是detailBand3,其中subreport又带有List dataSource

  1. 我首先想要所有迭代(取决于in中的元素数量) 要打印的detailBand1的列表。)

  2. 然后DetailBand2打印一次(因为它有静态文本)。

  3. 其后是DetailBand3及其所有元素。

  4. 示例:

    Example

    报告布局 Image of jasper report layout

1 个答案:

答案 0 :(得分:0)

简化你的问题是否可能?

  

Band1(记录1)

     

Band1(记录2)

     

Band2(记录1)

     

Band2(记录2)

在不更改数据源的情况下,这是不可能的

因此,带2实际上在细节带内

<detail>
    <band/> //Band 1
    <band/> //Band 2
</detail>

所以执行将是

  

Band1(记录1)

     

Band2(记录1)

     

Band1(记录2)

     

Band2(记录2)

如果您绝对不想重新考虑报告结构,可以在数据源中复制数据,在重复数据上设置属性以了解是在band1还是在band2中写入然后在乐队上使用Print When Condition

在这种情况下,您的数据源将变为:

  • 记录1(属性:带1)
  • 记录2(属性:带1)
  • 记录1(属性:带2)
  • 记录2(属性:带2)

band1Print When Condition: property=band 1

band2Print When Condition property=band 2

但是,我建议您使用组带和子报告重新考虑您的报告和数据结构,以获得所需的结果。