2

是否可以将文本包装在 groupHeader 中?我让它在细节部分工作,但组内的文本似乎不想换行。我已经尝试了所有我能想到或从谷歌找到的包装组合。

<style name="reportProject" isDefault="false" fontName="Times" fontSize="10" isBold="false" isItalic="true" isUnderline="false" isStrikeThrough="false"/>
<group name="PROJHEADER" minHeightToStartNewPage="60">
    <groupExpression><![CDATA[$F{projectHeader}]]>
    </groupExpression>
    <groupHeader>
        <band height="40" splitType="Stretch">
            <printWhenExpression><![CDATA[Boolean.valueOf($F{projectHeader}.length() > 0)]]>
            </printWhenExpression>
            <textField  isStretchWithOverflow="true"  isBlankWhenNull="true"
                                evaluationTime="Group" evaluationGroup="PROJHEADER" bookmarkLevel="1">
                <reportElement positionType="Float" style="reportProject" mode="Opaque" x="0" y="5" 
                                width="515" height="15" backcolor="#C0C0C0"
                                stretchType="RelativeToBandHeight"/>
                <box leftPadding="10">
                    <bottomPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Left" verticalAlignment="Middle" />
                <textFieldExpression class="java.lang.String"><![CDATA[$F{projectHeader}]]>
                </textFieldExpression>
            </textField>
        </band>
    </groupHeader>
</group>
4

2 回答 2

2

isStretchWithOverflow属性设置为值对我有帮助。

样本:

<group name="citygr">
    <groupExpression><![CDATA[$F{CITY}]]></groupExpression>
    <groupHeader>
        <band height="20">
            <textField isStretchWithOverflow="true">
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{CITY} + " text1 txt2 longtext3 verylonglongtxt4 long1234567890verylongtext5 txt6 text6 longtext7"]]></textFieldExpression>
            </textField>
        </band>
    </groupHeader>
</group>

结果将是:

pdf 报告

我正在使用iReport 4.1.3

您也可以尝试设置net.sf.jasperreports.export.pdf.force.linebreak.policy属性。只需将此属性添加到您的 jrxml 文件中即可。您可以在此处阅读有关此属性的信息。

样本:

<jasperReport ...>
    <property name="net.sf.jasperreports.export.pdf.force.linebreak.policy" value="true"/>
于 2012-01-19T06:12:48.300 回答
1

这就是我最终得到的,有效。

<jasperReport ...>
   <property name="net.sf.jasperreports.export.pdf.force.linebreak.policy" value="true"/>
   .....
    <group name="PROJHEADER" minHeightToStartNewPage="60">
        <groupExpression><![CDATA[$F{projectHeader}]]>
        </groupExpression>
        <groupHeader>
            <band height="40" splitType="Stretch">
                <printWhenExpression><![CDATA[Boolean.valueOf($F{projectHeader}.length() > 0)]]></printWhenExpression>
                <textField  isStretchWithOverflow="true"  isBlankWhenNull="true">
                    <reportElement  style="reportProject" x="0" y="5" 
                        width="400" height="15" backcolor="#C0C0C0"/>
                    <textElement textAlignment="Left" verticalAlignment="Middle" />
                    <textFieldExpression class="java.lang.String"><![CDATA[$F{projectHeader}]]>
                    </textFieldExpression>
                </textField>
            </band>
        </groupHeader>
    </group>
于 2012-01-19T16:42:21.817 回答