JasperReports 6.12.2 中的文本字段动态高度
Text Field dynamic height in JasperReports 6.12.2
我目前正在 API 工作,它将生成报告(使用 JasperReports 6.12.2),在这种情况下,我必须在文本字段中打印一个大字符串,问题是我可以' 为该元素提供适当的行为以将高度调整为字符串大小。
我之前一直在搜索,我发现的都是关于 属性 isStretchWithOverflow="true"
,但对我不起作用,因为在我的版本中,这已被弃用并且替换为 textAdjust="StretchHeight"
所以基本上所有结果都以相同的方式结束,文本被文本字段剪切。
注意:另外我不得不说,这种动态的必要性是因为我需要对报告进行分页。
- 元素文本字段 JRXML 代码:
<textField textAdjust="StretchHeight">
<reportElement positionType="Float" stretchType="RelativeToBandHeight" x="0" y="190" width="555" height="321" isPrintWhenDetailOverflows="true"/>
<textFieldExpression><![CDATA[$P{text}]]></textFieldExpression>
</textField>
完整的波段详细信息 JRXML 代码:
<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>
尝试解决这个问题一段时间后,我找到了问题所在。
近期Jasper Reports将版本升级到v6.11(发布时间:2019-Dec-12),在该版本中Jaspersoft® Studio将属性 isstretchwithoverflow
替换为textAdjust
, 所以问题与版本有关,我意识到我的 Jasper 报告库是旧版本 v6.2,其中属性 textAdjust 甚至不存在。
因此,如果其他人遇到此问题,请检查您的库版本,如果它低于 6.11 版本并且您的编辑器插件是 6.11 或更高版本,您将无法正确溢出文本和分页。
属性 isStretchWithOverflow
在 JasperReports 库 6.10.0 中被 textAdjust
属性 取代。所以要实现动态拉伸效果,需要设置textAdjust="StretchHeight"
.
如果您在 Jaspersoft Studio 中设置兼容性设置(“Window > 首选项 > Jaspersoft Studio > 兼容性”),它会自动将 属性 更改为兼容版本,即 [=当您 select 版本 <= JasperReports 6.5.1.
时,12=] 将自动换成 isStretchWithOverflow="true"
我目前正在 API 工作,它将生成报告(使用 JasperReports 6.12.2),在这种情况下,我必须在文本字段中打印一个大字符串,问题是我可以' 为该元素提供适当的行为以将高度调整为字符串大小。
我之前一直在搜索,我发现的都是关于 属性 isStretchWithOverflow="true"
,但对我不起作用,因为在我的版本中,这已被弃用并且替换为 textAdjust="StretchHeight"
所以基本上所有结果都以相同的方式结束,文本被文本字段剪切。
注意:另外我不得不说,这种动态的必要性是因为我需要对报告进行分页。
- 元素文本字段 JRXML 代码:
<textField textAdjust="StretchHeight">
<reportElement positionType="Float" stretchType="RelativeToBandHeight" x="0" y="190" width="555" height="321" isPrintWhenDetailOverflows="true"/>
<textFieldExpression><![CDATA[$P{text}]]></textFieldExpression>
</textField>
完整的波段详细信息 JRXML 代码:
<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>
尝试解决这个问题一段时间后,我找到了问题所在。
近期Jasper Reports将版本升级到v6.11(发布时间:2019-Dec-12),在该版本中Jaspersoft® Studio将属性 isstretchwithoverflow
替换为textAdjust
, 所以问题与版本有关,我意识到我的 Jasper 报告库是旧版本 v6.2,其中属性 textAdjust 甚至不存在。
因此,如果其他人遇到此问题,请检查您的库版本,如果它低于 6.11 版本并且您的编辑器插件是 6.11 或更高版本,您将无法正确溢出文本和分页。
属性 isStretchWithOverflow
在 JasperReports 库 6.10.0 中被 textAdjust
属性 取代。所以要实现动态拉伸效果,需要设置textAdjust="StretchHeight"
.
如果您在 Jaspersoft Studio 中设置兼容性设置(“Window > 首选项 > Jaspersoft Studio > 兼容性”),它会自动将 属性 更改为兼容版本,即 [=当您 select 版本 <= JasperReports 6.5.1.
时,12=] 将自动换成isStretchWithOverflow="true"