我正在使用 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>
答案 0 :(得分:3)
默认情况下,隐藏元素会留下空白。为避免这种情况,您应该在元素上将属性isRemoveLineWhenBlank
设置为true,在本例中为框架。
但是,如果有其他元素共享同一条线并且可见,则无法折叠该空间。