我有一个用 iReport 开发的小细节 JasperReports 的报告。我有经典的 Header 乐队和一行的值,但下面我需要放另一个textField,实际上很长达500个字符,即 Observations 。在 Detail 行中,一个字段最多可包含100个字符(即 CONCEPT ),这可能会导致textField垂直拉伸,这样可以正常工作。当 Concept textField垂直增长时出现问题 Observations 位于 Detail 行下方,保持在相同位置导致重叠彼此......
以下是迄今为止的一些结果图片。
我的报告有以下设计(在 iReport 中查看):
生成的报告如下所示:
正如您可以看到 Observations textField,如果重叠 CONCEPTO textField的换行符。
UPDATE 在按照Alex K
的提示后,我正在接收此输出....
以下是 Detail 频段的代码:
<detail>
<band height="36" splitType="Stretch">
<textField pattern="" isBlankWhenNull="true">
<reportElement x="349" y="0" width="61" height="19"/>
<textElement textAlignment="Center"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c04}+"€"]]></textFieldExpression>
</textField>
<textField pattern="" isBlankWhenNull="true">
<reportElement x="410" y="0" width="53" height="19"/>
<textElement textAlignment="Center"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c05}+"€"]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement x="240" y="-1" width="57" height="20"/>
<textElement textAlignment="Right"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c06}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement x="68" y="0" width="172" height="19"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c03}]]></textFieldExpression>
</textField>
<textField pattern="" isBlankWhenNull="true">
<reportElement x="297" y="0" width="51" height="19"/>
<textElement textAlignment="Center"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c02}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="true">
<reportElement isPrintRepeatedValues="false" x="0" y="0" width="67" height="19"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c07}]]></textFieldExpression>
</textField>
<textField pattern="" isBlankWhenNull="true">
<reportElement positionType="Float" x="1" y="18" width="554" height="18"/>
<textElement textAlignment="Left"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{c08}]]></textFieldExpression>
</textField>
</band>
</detail>
答案 0 :(得分:1)
您应该将 isStretchWithOverflow 属性设置为 textField 的 true ,并带有长文本(在您的案例中包含$F{c03}
字段)第二行中 textField 的属性(样本中包含$F{c08}
字段):
jrxml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<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="overlapping_test" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString>
<![CDATA[]]>
</queryString>
<field name="c07" class="java.lang.String"/>
<field name="c03" class="java.lang.String"/>
<field name="c02" class="java.lang.String"/>
<field name="c04" class="java.lang.String"/>
<field name="c05" class="java.lang.String"/>
<field name="c08" class="java.lang.String"/>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="92" height="20"/>
<textElement/>
<text><![CDATA[Code]]></text>
</staticText>
<staticText>
<reportElement x="92" y="0" width="92" height="20"/>
<textElement/>
<text><![CDATA[Concept]]></text>
</staticText>
<staticText>
<reportElement x="184" y="0" width="92" height="20"/>
<textElement/>
<text><![CDATA[Candidate]]></text>
</staticText>
<staticText>
<reportElement x="276" y="0" width="92" height="20"/>
<textElement/>
<text><![CDATA[Price]]></text>
</staticText>
<staticText>
<reportElement x="368" y="0" width="92" height="20"/>
<textElement/>
<text><![CDATA[Amount]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="40" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="92" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c07}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement x="92" y="0" width="92" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c03}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="184" y="0" width="92" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c02}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="276" y="0" width="92" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c04}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="368" y="0" width="92" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c05}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement positionType="Float" x="0" y="20" width="460" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{c08}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
iReport 中的报告设计:
结果(通过 iReport 中的预览):