columnFooter 中的文本不会拉伸
Text in columnFooter doesn't stretch
我在打印文本字段的内容时遇到问题。该报告是一张发票,在列脚注中,我想根据发票数据打印一些可变文本。
我在 Column Footer Band 中定义了一个文本字段,它从通过 jasperstarter 发送的参数中获取他的内容。
问题:
即使我设置了 "Stretch with overflow",如果文本字段不适合文本字段,文本字段也会截断行。如果我将文本字段变大,就会显示文本。
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="StandardInvoice002" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="53084288-6a86-4b4d-a942-fa8965b8d117">
<queryString language="SQL">
<![CDATA[$P!{query}]]>
</queryString>
<columnFooter>
<band height="196" splitType="Stretch">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" x="30" y="165" width="500" height="21" isRemoveLineWhenBlank="true" uuid="27681503-6210-41cc-b444-5b9c0d720f4b"/>
<textElement markup="html"/>
<textFieldExpression><![CDATA["this is a very long text (1)<br>this is a very long text (2)<br>this is a very long text (3)<br>this is a very long text (4)"]]></textFieldExpression>
</textField>
</band>
</columnFooter>
</jasperReport>
Textfield contains 4 lines but only 2 are displayed
columnFooter
是固定尺寸的(pageFooter
也是),所以不会拉伸,所以你需要改变你的设计。
可能您正在寻找的是 groupFooter
,它显示在每个页面上并堆叠在底部。
例子
<?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="StandardInvoice002" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="53084288-6a86-4b4d-a942-fa8965b8d117">
<queryString language="SQL">
<![CDATA[]]>
</queryString>
<group name="pageGroup" footerPosition="StackAtBottom">
<groupExpression><![CDATA[$V{PAGE_NUMBER}]]></groupExpression>
<groupFooter>
<band height="142">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" isPrintRepeatedValues="false" x="0" y="121" width="555" height="21" isRemoveLineWhenBlank="true" uuid="27681503-6210-41cc-b444-5b9c0d720f4b"/>
<textElement markup="html"/>
<textFieldExpression><![CDATA["this is a very long text (1)<br>this is a very long text (2)<br>this is a very long text (3)<br>this is a very long text (4)"]]></textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
</jasperReport>
输出
只需调整 groupExpression
即可在您喜欢的页面上获得输出
我在打印文本字段的内容时遇到问题。该报告是一张发票,在列脚注中,我想根据发票数据打印一些可变文本。
我在 Column Footer Band 中定义了一个文本字段,它从通过 jasperstarter 发送的参数中获取他的内容。
问题:
即使我设置了 "Stretch with overflow",如果文本字段不适合文本字段,文本字段也会截断行。如果我将文本字段变大,就会显示文本。
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="StandardInvoice002" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="53084288-6a86-4b4d-a942-fa8965b8d117">
<queryString language="SQL">
<![CDATA[$P!{query}]]>
</queryString>
<columnFooter>
<band height="196" splitType="Stretch">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" x="30" y="165" width="500" height="21" isRemoveLineWhenBlank="true" uuid="27681503-6210-41cc-b444-5b9c0d720f4b"/>
<textElement markup="html"/>
<textFieldExpression><![CDATA["this is a very long text (1)<br>this is a very long text (2)<br>this is a very long text (3)<br>this is a very long text (4)"]]></textFieldExpression>
</textField>
</band>
</columnFooter>
</jasperReport>
Textfield contains 4 lines but only 2 are displayed
columnFooter
是固定尺寸的(pageFooter
也是),所以不会拉伸,所以你需要改变你的设计。
可能您正在寻找的是 groupFooter
,它显示在每个页面上并堆叠在底部。
例子
<?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="StandardInvoice002" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="53084288-6a86-4b4d-a942-fa8965b8d117">
<queryString language="SQL">
<![CDATA[]]>
</queryString>
<group name="pageGroup" footerPosition="StackAtBottom">
<groupExpression><![CDATA[$V{PAGE_NUMBER}]]></groupExpression>
<groupFooter>
<band height="142">
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" isPrintRepeatedValues="false" x="0" y="121" width="555" height="21" isRemoveLineWhenBlank="true" uuid="27681503-6210-41cc-b444-5b9c0d720f4b"/>
<textElement markup="html"/>
<textFieldExpression><![CDATA["this is a very long text (1)<br>this is a very long text (2)<br>this is a very long text (3)<br>this is a very long text (4)"]]></textFieldExpression>
</textField>
</band>
</groupFooter>
</group>
</jasperReport>
输出
只需调整 groupExpression
即可在您喜欢的页面上获得输出