当PDF报告中没有显示时,框架会留下空白空间

时间:2013-10-02 23:33:39

标签: pdf jasper-reports pdf-generation

我正在使用 iReport 4.5.1 来设计 JR pdf报告。我使用框架组件来分组报告中的几个字段。我在帧上使用“Print When Expression”选项,仅在特定字段不为空时才显示它。

在生成的PDF报告中,当字段不为空时,Frame和数据显示正常。但是当它为null时,框架不会显示在PDF上,但会留下巨大的空白空间。我无法想办法避免这种情况。

如果有人已经找到解决方案,请告诉我。

下面是粘贴在JRXML上的文章。

<frame>
    <reportElement positionType="Float" x="11" y="90" width="544" height="120" isPrintWhenDetailOverflows="true">
        <printWhenExpression><![CDATA[$F{facutlyMinimumTot} != null]]></printWhenExpression>
    </reportElement>
    <staticText>
        <reportElement positionType="Float" mode="Transparent" x="0" y="0" width="544" height="20" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true">
            <property name="net.sf.jasperreports.print.keep.full.text" value="true"/>
        </reportElement>
        <textElement>
            <font fontName="Arial" size="16" isBold="true"/>
        </textElement>
        <text><![CDATA[Time on Task]]></text>
    </staticText>
    <staticText>
        <reportElement positionType="Float" x="0" y="25" width="544" height="15"/>
        <textElement>
            <font fontName="Arial" size="10" isBold="true"/>
        </textElement>
        <text><![CDATA[Reading and Assignments]]></text>
    </staticText>
    <textField>
        <reportElement positionType="Float" x="0" y="40" width="544" height="15"/>
        <textElement/>
        <textFieldExpression><![CDATA["Minimum Requirement: "+$F{facutlyMinimumTot}]]></textFieldExpression>
    </textField>
    <textField>
        <reportElement positionType="Float" x="0" y="55" width="544" height="15"/>
        <textElement/>
        <textFieldExpression><![CDATA["This Syllabus has "+ $F{facutlyAllActivityTot}]]></textFieldExpression>
    </textField>
    <staticText>
        <reportElement positionType="Float" x="0" y="75" width="544" height="15"/>
        <textElement>
            <font fontName="Arial" isBold="true"/>
        </textElement>
        <text><![CDATA[Participation and other course-work
    ]]></text>
    </staticText>
    <textField>
        <reportElement positionType="Float" x="0" y="90" width="544" height="15"/>
        <textElement/>
        <textFieldExpression><![CDATA["Minimum Requirement: "+$F{studentMinimumTot}]]></textFieldExpression>
    </textField>
    <textField>
        <reportElement positionType="Float" x="0" y="105" width="544" height="15"/>
        <textElement/>
        <textFieldExpression><![CDATA["This Syllabus has " +$F{studentAllActivityTot}]]> </textFieldExpression>
    </textField>
</frame>

1 个答案:

答案 0 :(得分:3)

默认情况下,隐藏元素会留下空白。为避免这种情况,您应该在元素上将属性isRemoveLineWhenBlank设置为true,在本例中为框架。

但是,如果有其他元素共享同一条线并且可见,则无法折叠该空间。