JaiMartz
JaiMartz

Reputation: 81

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>
    

Upvotes: 4

Views: 14739

Answers (2)

JaiMartz
JaiMartz

Reputation: 81

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.

Upvotes: 4

buddemat
buddemat

Reputation: 5301

The property isStretchWithOverflow was replaced in the JasperReports Library 6.10.0 by the textAdjust property. So to achieve the dynamic stretching effect, you need to set textAdjust="StretchHeight".

If you set your compatibility settings in Jaspersoft Studio ("Window > Preferences > Jaspersoft Studio > Compatibility") accordingly, it will automatically change the property to the compatible version, i.e. textAdjust="StretchHeight" will automatically be exchanged for isStretchWithOverflow="true" when you select a version <= JasperReports 6.5.1.

Upvotes: 2

Related Questions