元素位置无效
The element position is invalid
我正在使用 iReport 3.7.6。
如果您查看下图,您会看到一条警告。警告说:
警告元素位置无效
元素超出列表内容高度:y = 275,高度= 30,列表内容高度= 30。
<componentElement>
<reportElement positionType="Float" x="0" y="217" width="555" height="15" />
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical" ignoreWidth="false">
<datasetRun subDataset="deliverableProductsDataset" >
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{deliverableProducts})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="30" width="475" >
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToBandHeight" x="23" y="275" width="257" height="30"/>
<box topPadding="5" leftPadding="5" bottomPadding="5" rightPadding="5">
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement>
<font fontName="DejaVu Sans"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
您的布局有两个问题。
- 元素
jr:list
的高度为 15,元素 jr:listContents
和 textField
的高度均为 30。将 jr:list
的高度增加到 30(或更高)或减少 jr:listContents
和 textField
高度为 15(或更低)。
textField
元素的位置应该相对于 jr:list
。因此,由于 jr:list
的高度为 15,因此您不能使用 y=275。
这是一个稍微修改过的版本。适合您的需求:
<componentElement>
<reportElement x="0" y="217" width="555" height="30"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="dataset1">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="30" width="555">
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToBandHeight" x="0" y="0" width="257" height="30"/>
<box topPadding="5" leftPadding="5" bottomPadding="5" rightPadding="5">
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement>
<font fontName="DejaVu Sans"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
我正在使用 iReport 3.7.6。
如果您查看下图,您会看到一条警告。警告说: 警告元素位置无效
元素超出列表内容高度:y = 275,高度= 30,列表内容高度= 30。
<componentElement>
<reportElement positionType="Float" x="0" y="217" width="555" height="15" />
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical" ignoreWidth="false">
<datasetRun subDataset="deliverableProductsDataset" >
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{deliverableProducts})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="30" width="475" >
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToBandHeight" x="23" y="275" width="257" height="30"/>
<box topPadding="5" leftPadding="5" bottomPadding="5" rightPadding="5">
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement>
<font fontName="DejaVu Sans"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
您的布局有两个问题。
- 元素
jr:list
的高度为 15,元素jr:listContents
和textField
的高度均为 30。将jr:list
的高度增加到 30(或更高)或减少jr:listContents
和textField
高度为 15(或更低)。 textField
元素的位置应该相对于jr:list
。因此,由于jr:list
的高度为 15,因此您不能使用 y=275。
这是一个稍微修改过的版本。适合您的需求:
<componentElement>
<reportElement x="0" y="217" width="555" height="30"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="dataset1">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(1)]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="30" width="555">
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToBandHeight" x="0" y="0" width="257" height="30"/>
<box topPadding="5" leftPadding="5" bottomPadding="5" rightPadding="5">
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement>
<font fontName="DejaVu Sans"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>