Jasper reports 如何拉伸jasperreports子报表以适应父级高度

Jasper reports 如何拉伸jasperreports子报表以适应父级高度,jasper-reports,subreport,stretch,Jasper Reports,Subreport,Stretch,是否可以使用jasperrepors textfiled实现类似rowSpan的功能 我有两个报告:主报告和子报告 在主要细节栏中,我有文本字段和子报告: <band height="15" splitType="Stretch"> <property name="com.jaspersoft.studio.unit.height" value="pixel"/> <textField isStretchWithOverflow="true" isBlankWhen

是否可以使用jasperrepors textfiled实现类似rowSpan的功能

我有两个报告:主报告和子报告

在主要细节栏中,我有文本字段和子报告:

<band height="15" splitType="Stretch">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
    <reportElement style="cell" stretchType="RelativeToBandHeight"
                   x="20" y="0" width="200" height="15"
                   isPrintWhenDetailOverflows="true"/>
    <textElement textAlignment="Center" verticalAlignment="Middle">
        <font fontName="DejaVu Sans" size="7" isBold="true"/>
        <paragraph leftIndent="1" rightIndent="1" spacingBefore="1"
                   spacingAfter="1"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{org_name}]]></textFieldExpression>
</textField>
<subreport>
    <reportElement stretchType="RelativeToTallestObject" x="220" y="0"
                   width="582" height="15" isPrintWhenDetailOverflows="true">
        <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
    </reportElement>
    <subreportParameter name="SUBREPORT_DIR">
        <subreportParameterExpression>
            <![CDATA[$P{SUBREPORT_DIR}]]>
        </subreportParameterExpression>
    </subreportParameter>
    <dataSourceExpression><![CDATA[$F{EDU_LEVEL_DATASOURCE}]]></dataSourceExpression>
    <subreportExpression>
        <![CDATA[$P{SUBREPORT_DIR}
                 + "/reports/scholarship_fund_analysis/sub_education_level.jasper"]]>
    </subreportExpression>
</subreport>
子报表的详细信息栏中有一个文本字段

其目的是在主报表中为组织名称textField实现类似rowSpan的功能。当子报表包含大量内容时,它可以正常工作

当组织名称太长,并且子报表的行数很少时,就会出现问题。组织名称文本字段的高度大于子报表的总高度。在主报表的下一行之前,子报表下有空白

结果报告如下所示:

Idea:将包含第一列文本的参数从报表传递到子报表。 在子报表中,以字体颜色FFFFFF白色在背景栏中显示此参数

怎么做

我的报告结构:

第一列在主报告$F{daysLabel}中。子报表中的第二列和第三列

在主报告中创建参数选择子报告1,然后编辑参数2,如下所示

我的声誉不足10分,我可能不会放更多的图片链接,所以没有更多的图片

在打开的窗口中输入参数名,比如toto,然后在expression下输入保存列值的变量,在我的例子中是$F{daysLabel}

在子报表中,您创建了一个参数,该参数的名称与刚才在主报表toto中创建的参数的名称相同,并将其显示在背景栏中。将拉伸溢出条件设置为true。在我的例子中,这是可以的,因为第一列的宽度完全适合我的子报表。也许在你的情况下,你可能需要做一个特殊的调整

将颜色字体设置为白色,您将看到子报表的长度与主报表的第一列一样大。 对于子报表中单元格的边框,请将底部画笔设置为0:

Idea:将包含第一列文本的参数从报表传递到子报表。 在子报表中,以字体颜色FFFFFF白色在背景栏中显示此参数

怎么做

我的报告结构:

第一列在主报告$F{daysLabel}中。子报表中的第二列和第三列

在主报告中创建参数选择子报告1,然后编辑参数2,如下所示

我的声誉不足10分,我可能不会放更多的图片链接,所以没有更多的图片

在打开的窗口中输入参数名,比如toto,然后在expression下输入保存列值的变量,在我的例子中是$F{daysLabel}

在子报表中,您创建了一个参数,该参数的名称与刚才在主报表toto中创建的参数的名称相同,并将其显示在背景栏中。将拉伸溢出条件设置为true。在我的例子中,这是可以的,因为第一列的宽度完全适合我的子报表。也许在你的情况下,你可能需要做一个特殊的调整

将颜色字体设置为白色,您将看到子报表的长度与主报表的第一列一样大。 对于子报表中单元格的边框,请将底部画笔设置为0:

可能的重复项&可能的重复项&