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