JasperReport - 子报告高度动态

时间:2018-05-30 15:06:54

标签: jasper-reports subreport

我想生成一个带有JasperReport的pdf文件,其中 JasperSoft Studio 6.5

在我的jrxml文件中,我有两个级别的子报告。

我对此报告的布局更加困难。此报告包含( 1°子报告)动态文件列表(带有描述字段,在某些情况下非常冗长)。

2°子报告是一个文件列表(由文件名和注释组成)

包含1°子报表的行的高度动态基于两个条件:

  1. 说明字段
  2. 第二个子报告中记录的行数
  3. 如果2°子报告高于第一个子报告,如果我有页面更改,则会出现问题。 因此,如果第一个子报告高于第二个子报告,则第二个子报告不会跟随第一个子报告的高度。

    我知道这不是一个简单的问题。我希望图片可以帮助你理解。

    案例1:详细说明:

    Case 1

    案例2:第二个子报告分为几页

    Case 2

    在我的jrxml文件中,我使用了这个:

    <subreport>
        <reportElement key="" stretchType="ContainerHeight" isPrintRepeatedValues="false" mode="Opaque" x="310" y="0" width="285" height="35" uuid="1b99fb4b-1bfd-4f88-8ef7-1568c6de04aa">
                        <printWhenExpression><![CDATA[!$FlistSource}.isEmpty()]]></printWhenExpression>
                    </reportElement>
                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listSource})]]></dataSourceExpression>
                    <subreportExpression><![CDATA[$P{SUBREPORT_DIR}+ "sub_filename.jasper"]]></subreportExpression>
    </subreport>
    

    我没有为此报告找到一个重要的解决方案, 任何想法?

1 个答案:

答案 0 :(得分:0)

您希望两个表的大小相同,即使扩展了一个?

将两个表的stretchtype设置为“RelativeToTallestObject”可能有效。