Search code examples
jasper-reports

Text Field dynamic height in JasperReports 6.12.2


I'm currently working in a API that will generate reports (with JasperReports 6.12.2), in this case I have to print a large String in a text field, the problem is that I can't give the appropiate behaviour to this element to adjust the height to the String size.

I've been searching before to ask, and all that I've found was about the property isStretchWithOverflow="true", but isn't working for me because in my version this is deprecated and replaced with textAdjust="StretchHeight" so basically all the results finish with the same, the text is cutted by the text field.

Note: Also I have to say that this necessity of dynamism is because i need to paginate the report.

  1. Element Text Field JRXML code:
<textField textAdjust="StretchHeight">
    <reportElement positionType="Float" stretchType="RelativeToBandHeight" x="0" y="190" width="555" height="321" isPrintWhenDetailOverflows="true"/>
    <textFieldExpression><![CDATA[$P{text}]]></textFieldExpression>
</textField>
  1. Complete Band Detail JRXML code:

    <detail>
    <band height="802" splitType="Stretch">
        <textField>
            <reportElement x="0" y="40" width="140" height="20" uuid="8e0ef27f-45c4-45f5-8c36-93e126db95db"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.codigo}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="60" width="140" height="20" uuid="6cfe8e0b-0b7d-47f5-be4e-4c94d7f19fac"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.fecha}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="80" width="140" height="20" uuid="c8508fc6-3b17-4bcc-a207-2a9beff32263"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.enviado}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="100" width="140" height="20" uuid="5f7c732e-aeee-4896-bf11-dbd8f2c2b02f"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.asunto}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="120" width="140" height="20" uuid="71f51ac1-63c5-4abb-909a-3f31b14e0e80"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.canal}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="140" width="140" height="20" uuid="00e9ac8d-c331-429d-944a-240e6abf2107"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.nombre}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="0" y="160" width="140" height="20" uuid="4b22fdfb-36a3-41da-86d1-a527ca67667d"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.texto}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="40" width="405" height="20" uuid="bc346e06-c225-4451-bde7-67bde39d402e"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{codigo}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="60" width="405" height="20" uuid="1d0ac2a4-fcb9-4ad3-9d9d-db440ae5cfb3"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse($P{fAlta}))]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="80" width="405" height="20" uuid="d0189a13-4ded-45a1-82ad-5896a50f7fbf"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{mailPara}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="100" width="405" height="20" uuid="b0cfff7f-9230-4351-a59c-bf550fc4f0c2"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{asunto}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="140" width="405" height="20" uuid="15f48c57-404d-47e2-94a9-26da75054aa9"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{operador}]]></textFieldExpression>
        </textField>
        <staticText>
            <reportElement x="150" y="120" width="405" height="20" uuid="0926440c-f596-47a4-b7b4-674faa82b407"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <text><![CDATA[Operador ATC]]></text>
        </staticText>
        <textField>
            <reportElement x="0" y="20" width="140" height="20" uuid="664930ad-64a1-44fc-9cdb-4ef34eb7cffa"/>
            <textElement>
                <font fontName="SansSerif" size="11" isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA[$R{respuesta.cuerpo.idPeticionATC}]]></textFieldExpression>
        </textField>
        <textField>
            <reportElement x="150" y="20" width="405" height="20" uuid="d9303c25-1ea8-45ca-b4b7-984a0b95d4ee"/>
            <textElement>
                <font fontName="SansSerif" size="11"/>
            </textElement>
            <textFieldExpression><![CDATA[$P{idPeticionATC}]]></textFieldExpression>
        </textField>
        <textField textAdjust="StretchHeight">
            <reportElement positionType="Float" stretchType="RelativeToBandHeight" x="0" y="190" width="555" height="321" isPrintWhenDetailOverflows="true" uuid="0e59dd92-0a62-453a-9167-6a9d5b43ff54"/>
            <textFieldExpression><![CDATA[$P{text}]]></textFieldExpression>
        </textField>
    </band>
    


Solution

  • After a while trying to solve this issue I've found the problem.

    Recently Jasper Reports upgraded the version to v6.11 (Published: 2019-Dec-12), in this version Jaspersoft® Studio changed the property isstretchwithoverflow is replaced by textAdjust, so the problem was related with the version, and I realized that my Jasper reports library was in an older version v6.2, where the propertie textAdjust doesn't even exist.

    So if anyone else is having this problem, please, check your library version, if it's under version 6.11 and your editor plugin is version 6.11 or higher, you will not be able to overflow texts and paginate properly.