JasperReports, strech with overflow

In JasperReports hat man oft das Problem das Texte einfach abgeschnitten werden. Wenn ein Textfeld nicht hoch oder breit genug ist, wird abgeschnitten. Das ist das standardverhalten vom Framework.
Wenn sich das Feld dem Textinhalt dynamisch anpassen soll muss das Attribut “stretch with overflow” den Wert “true” haben. In dem grafischen Editor iReport muss man dazu ein Rechtsklick auf das entsprechende Textfeld machen und im Kontextmenue den Eintrag “Properties” auswaehlen. In dem Popup-Fenster der dannach erscheint kann im Karteireiter ganz rechts (“All”) das Attribut gesetzt werden.

Sehr wichtig und weniger intuitiv dabei ist es, das Attribut “stretch type” auf dem Wert “no stretch” zu lassen. Wenn ein anderer stretch type eingestellt ist dann funktioniert das ganze bereits nicht mehr und auf diesen Fehler muss man erstmal kommen 🙂

Das entsprechende Stueck Sourcecode in der *.jrxml Datei dazu sieht wie folgt aus:

<textField isStretchWithOverflow="true"  isBlankWhenNull="false"  evaluationTime="Now"  hyperlinkType="None"   hyperlinkTarget="Self"  >
     <reportElement
            x="138"
            y="112"
            width="386"
            height="14"
            key="textField-12"
            positionType="Float" />
     <box topBorder="None"  topBorderColor="#000000"  leftBorder="None"  leftBorderColor="#000000"  rightBorder="None"  rightBorderColor="#000000"  bottomBorder="None"  bottomBorderColor="#000000" />
     <textElement>
            <font/>
     </textElement>
     <textFieldExpression class="java.lang.String" ><![CDATA[$F{descriptionValue}]]></textFieldExpression>
</textField>

Wenn alles richtig eingestellt ist, kann beliebig viel Text in ein Textfeld eingefuegt werden und dieser wird sogar vollstaendig angezeigt. Alle Element die unter dem Textfeld stehen werden natuerlich dementsprechend nach unten verschoben.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s