iReport – Textstellen ersetzen

Um Textstellen innerhalb eines iReport-Feldes zu ersetzen, muß lediglich eine Variable erstellt werden, die folgenden Inhalt hat:
$F{text}.replace("ALTER_TEXT","NEUER_TEXT")
bzw.
$F{text}.replaceFirst("ALTER_TEXT","NEUER_TEXT")
bzw.
$F{text}.replaceAll("ALTER_TEXT","NEUER_TEXT")
Der Unterschied liegt im Ausdruck der erwartet wird, bei replace und replaceFirst wird schlicht suchen/ersetzen durchgeführt, bei replace alle Vorkommnisse, bei replaceFirst nur das Erste.
Bei replaceAll wird ein regulärer Ausdruck erwartet und dementsprechend alle Vorkommnisse ersetzt (Mehr Infos).

Es können natürlich auch andere Felder als neuer Inhalt eingebunden werden. Dabei ist dann aber noch eine Abfrage auf deren Inhalt empfehlenswert, da der Report sonst an dieser Stelle crashen könnte:
$F{text}.replace("ALTER_TEXT",($F{neuer_text} != null? $F{neuer_text} : ""))

Es ist auch kein Problem, mehere Ersetzungen anzuhängen.
$F{text}.replace("ALTER","NEUER").replaceAll("ALTER_2","NEUER_2")

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.