2012-01-19 192 views
2

是否可以將文本包裝到groupHeader中?我在詳細部分中工作, ,但組內的文本似乎不想包裝。我試過每個組合都可以考慮或從谷歌搜索。文本呈現剪輯,忽略使用PDF導出器的isStretchWithOverflow屬性值

<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> 

回答

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> 

結果將是:

The pdf report

我使用的iReport 4.1.3

您還可以嘗試設置net.sf.jasperreports.export.pdf.force.linebreak.policy屬性。只需將此屬性添加到您的jrxml文件中即可。您可以閱讀關於這個屬性here

樣本:

<jasperReport ...> 
    <property name="net.sf.jasperreports.export.pdf.force.linebreak.policy" value="true"/> 
+0

我已經有isStretchWithOverflow =「true」。我添加了該屬性,但仍然無效。不過,我決定讓我的textElement像你的一樣簡單,現在它可以工作。謝謝。 – JimClarke 2012-01-19 16:39:06

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>