Jasper reports 使子报表的所有迭代都集中在细节栏中。在打印下一个细节带之前

Jasper reports 使子报表的所有迭代都集中在细节栏中。在打印下一个细节带之前,jasper-reports,subreport,Jasper Reports,Subreport,请帮助我,我有项目的最后期限 我在detailBand1中有子报表,它有列表数据源进行迭代 第二个detailBand2有一些静态数据,然后是detailBand3,它又有一个子报表,其中包含列表数据源 我希望首先完成所有迭代(取决于迭代中的元素数量) 待打印的detailBand1列表 然后DetailBand2打印一次(因为它有静态文本) 然后是DetailBand3及其所有元素 示例: 报告布局 简化您的问题是否有可能这样做 第1组(记录1) 第1组(记录2) 第2组(记录1) 第二乐团

请帮助我,我有项目的最后期限

我在
detailBand1
中有
子报表
,它有
列表数据源
进行迭代

第二个
detailBand2
有一些静态数据,然后是
detailBand3
,它又有一个
子报表
,其中包含
列表数据源

  • 我希望首先完成所有迭代(取决于迭代中的元素数量) 待打印的
    detailBand1
    列表

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

  • 然后是
    DetailBand3
    及其所有元素

  • 示例:

    报告布局

    简化您的问题是否有可能这样做

    第1组(记录1)

    第1组(记录2)

    第2组(记录1)

    第二乐团(纪录二)

    如果不更改数据源,这是不可能的

    因此,标注栏2实际上位于详图标注栏内

    <detail>
        <band/> //Band 1
        <band/> //Band 2
    </detail>
    
    
    //波段1
    //波段2
    
    因此,死刑将被执行

    第1组(记录1)

    第2组(记录1)

    第1组(记录2)

    第二乐团(纪录二)

    如果您绝对不想重新考虑您的报表结构,可以通过在数据源中复制数据来实现,对复制数据设置属性以了解是在
    band1
    还是在
    band2
    中写入,然后在band上使用
    Print When条件

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

    • 记录1(属性:波段1)
    • 记录2(属性:波段1)
    • 记录1(属性:波段2)
    • 记录2(属性:波段2)
    band1
    在条件:property=band 1

    band2
    在条件属性=band 2时具有
    打印


    但是,我建议您使用组标注栏和子报表重新考虑您的报表和数据结构,以达到预期的结果。

    为什么要使用这些详细标注栏?子报表是否需要重复。。。从我看不到的地方!!,重复项在子报表中!,尝试使用其他乐队。。标题ecc。如果需要控制页面,请考虑组break@PetterFriberg子报表需要重复,并且正在重复。但在打印之后,一旦打印了DetailBand2数据,就可以打印detailBand1的第二次迭代。例如,在上面的代码中,如果有2个位置。对于第一个位置,打印子报告数据,然后打印详细信息栏2的内容,然后对于第二个位置,打印详细信息栏1的内容。我希望首先将DetailBand1的所有迭代打印在一起,然后再打印detailBand2的内容。谢谢,谢谢你的快速回复。我是这些报告的新手,你可以分享一些使用组带和子报告的例子。我可以更改报告的结构。感谢web上有很多示例(使用您最喜欢的搜索引擎),尝试找出您的主要数据集(可能没有,也可能有JREptyDataSource(1),所有查询都在子报告中完成,因为它们是多个的)。伪组带(您根据始终相同的值进行分组,以便只得到一个组)可以有效地控制分页符,因此您可以设置最小高度属性ecc。如果你解决了一些可以解决的问题,但仍然有问题,请发布一个新问题。。。。记住,包括相关的代码和清晰的问题描述。@ Abnav夏尔马考虑接受答案,关闭这个问题。