positionType="Float"
如果上面的组件拉伸,则组件上的组件会自行下拉。但如果上述组件缩小/不显示,则不会向上移动。
以下是使用的版本:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
将重现上述问题的代码:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="sample" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="acaa0a15-dc0f-462c-8d16-14f0b7325696">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<summary>
<band height="500" splitType="Prevent">
<staticText>
<reportElement positionType="Float" x="0" y="19" width="381" height="41" isRemoveLineWhenBlank="true" uuid="9547d877-993c-4bb4-becc-cf70a0cc1bc2">
<printWhenExpression><![CDATA[false]]></printWhenExpression>
</reportElement>
<text><![CDATA[Text11111111111111111111]]></text>
</staticText>
<staticText>
<reportElement positionType="Float" x="0" y="150" width="381" height="41" isRemoveLineWhenBlank="true" uuid="9e7dbe2e-2fed-41c8-82ce-c0c6886c8eda">
<printWhenExpression><![CDATA[true]]></printWhenExpression>
</reportElement>
<text><![CDATA[Text22222222222222222222]]></text>
</staticText>
</band>
</summary>
</jasperReport>
上面的代码仅显示第二个静态文本组件,而不是第一个。因为printWhenExpression
第一个是false
.
现在我希望显示第二个组件来代替第一个组件,但事实并非如此。结果我在那里得到了空间。
我怎样才能删除那个空白区域?
From JasperReports 文档 http://jasperreports.sourceforge.net/sample.reference/stretch/index.html强调我的
positionType="Float" - 如果该元素被其上方的其他元素向下推动,则该元素将在其父部分中浮动。它试图保持距离在它和紧邻其上方的相邻元素之间。
第二个reportElement不会移动到第一个reportElement所在的位置,因为它保持距离它们之间。距离如下图所示:
如果您希望reportElement 2 取代reportElement 1 的位置,您的解决方案是删除此空格!
方案A
删除空格,但保留第二个 reportElement 的位置(如果第一个存在)。增加reportElement 1 的高度。
方案B
通过向上移动reportElement 2来删除空格,如果它是textField(动态文本),您可以使用isStretchWithOverflow="true"
如果reportElement 1 溢出,则在reportElement 1 上将reportElement 2 向下推。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)