Nuclos Jasper Formatierungen: Bold, DecimalFormat, REPORT_LOCALE, Frames, Adresse, RemoveLineWhenBlank, Hyperlink, markup styled, br, LISTAGG, Stretch with overflow.

globe with meridians Sprache: Deutsch · English

open book Formatierungen

Formatierungs-Rezepte für JasperReports – Fett, Zahlenformate, Frames/Adressen, Hyperlinks, Markup und Umbrüche.

Auf dieser Seite

Fett & Kursiv

Das Bold-Flag wirkt nur in der Designer-Vorschau – im PDF erfolgt keine Umsetzung. Für echten Fett-/Kursiv-Druck muss die passende Schriftart (Font) gewählt werden (auch wenn das Property durchgestrichen dargestellt wird).

Fett/Kursiv über die Schriftart wählen.

Kommazahlen im Textfeld

Feldinhalte werden in JasperReports durch ein Java-Statement definiert. Für formatierte Kommazahlen:

new java.text.DecimalFormat("#,###,##0.00", java.text.DecimalFormatSymbols.getInstance($P{REPORT_LOCALE})).format($F{betrag})

Englisches Zahlenformat (Notlösung)

Zahlenfelder innerhalb eines Textes lassen sich nicht automatisch formatieren. Für ein englisches Format hilft dieser Hack:

new java.text.DecimalFormat("#,##0.00").format($V{zwsumme}.doubleValue()).replace(",", "x").replace(".", ",").replace("x", ".")

Durchgängige vertikale Spaltenlinien

Über Padding and Borders eines Textfeldes lässt sich je Seite eine Linie einblenden. Damit die Linie beim Wachsen der Spalte mitexpandiert, dürfen die Felder nicht auf fester Höhe stehen (siehe Stretch with overflow).

Stretch with overflow – einheitliche Darstellung

Wächst ein Feld über seine Breite hinaus, verschieben sich Nachbarfelder. Abhilfe:

  1. Alle Textfelder markieren → Rechtsklick → Padding And BordersPadding Top: 4px.
  2. Feldhöhe auf 0px setzen.
  3. Unteres Feld auf Position Type = Float und Position Top = 0 (wie alle anderen Felder) setzen.

Nach dem Hochladen liegen alle Felder in einer Linie.

Frames mit Adressen

Ein Frame ist ein Container für weitere Elemente (auch verschachtelt). Für einen Adressblock eignet sich das Band Titel (nur erste Seite); für Briefumschläge ausreichend Seitenabstand (ca. 50px) lassen.

Zwei Felder zu einer Adresszeile zusammenführen und leere Zeilen entfernen:

  1. Im Text Field Expression-Dialog die Felder mit + verketten (String-Konkatenation), bei fehlendem Wert null liefern.
  2. Am Feld die Flags RemoveLineWhenBlank, BlankWhenNull und StretchWithOverflow setzen.

Leere Zeilen (z.​B. strstrassezusatz) werden dann automatisch entfernt und die übrigen zusammengeschoben.

Adressblock: Text Field Expression.

Hyperlink

Textfeld oder Bild verlinken – entweder per Kontextmenü (Hyperlink, Typ Reference) oder direkt im JRXML:

<textField hyperlinkType="Reference">
   		<reportElement mode="Transparent" x="137" y="14" width="133" height="14"/>
		<textElement>
			
		</textElement>
		<textFieldExpression class="java.lang.String">"www.nuclos.de"</textFieldExpression>
		<hyperlinkReferenceExpression>"http://www.nuclos.de"</hyperlinkReferenceExpression>
</textField>

Markup – Styled

Mit Markup formatierst du einzelne Wörter/Absätze innerhalb eines Textfeldes, ohne ein neues Feld anzulegen. Property markup = styled setzen und <style>-Tags verwenden:

<style isBold='true' pdfFontName='Helvetica-Bold'  >Das ist ein dicker Text </style><style isBold='true' pdfFontName='Helvetica-Bold'  size='20'>20 Pixel groß </style><style isItalic='true' isUnderline='true' forecolor='green'> Grüner Text unterstzrichen und schief </style><style isBold='true' pdfFontName='Helvetica-Bold'  size='12'>&#38; hallo ich bin ein Sonderzeichen</style>

Markup scheitert, wenn der Text ein & enthält. Ersetze es vorab durch die Entity: Attribut.replaceAll("&", "&amp;"). Andere Sonderzeichen ggf. per UTF-8-Sequenz ersetzen.

Zeilenumbruch im Markup

Ein <br/> im Text erzeugt einen Umbruch (Feld weiterhin markup = styled). Beispiel: Ergebnismenge in Oracle per LISTAGG() mit <br/> verketten:

SELECT listagg(T2x."STRBEZEICHNUNG",'<br/>') 
    within group (order by T2x."STRBEZEICHNUNG") "strtext"
    
    FROM 
    Tabelle T1x
        
        WHERE 
        (
        T1x."Tabelle T1x" = Parameter
        )) "strtext",

Min Height To Start New Page

Dieses Property gibt den bereits von anderen Komponenten belegten Platz an (nicht die Höhe des aktuellen Elements) – ab dem ein neuer Seitenumbruch beginnt.

Verwandte Seiten

printer Formulare mit Jaspersoft Studio erstellen


Formulare.

Öffnen →

open book Bilder einfügen


Bilder.

Öffnen →

clipboard Tipps und Tricks


Weitere Tipps.

Öffnen →