Bedingte Formatierung mit Hilfe der DOM-API verwenden

Im Designer können für unterschiedliche Objekte zahlreiche Eigenschaften bestimmt werden. Dabei können Bedingungen verwendet werden, um eine Eigenschaft nur dann mit einem bestimmten Wert zu verwenden, wenn die Bedingung auch zutrifft. Das kann über zwei Arten im Designer bewerkstelligt werden:

  • Im Formeleditor des Designers kann für die Eigenschaft eine mehr oder weniger komplexe Formel konstruiert werden - natürlich auch beliebig kombiniert und verschachtelt. Doch bereits bei der Eingabe sind Kenntnisse zu Funktionen und Syntax unabdingbar.

  • Um den Kontakt mit dem Formeleditor im Designer hierbei zu minimieren, können sogenannte “Bedingte Formatierungen” verwendet werden, die die Einstellungen für die Eigenschaften und Bedingungen über eine Dialogführung deutlich für den Anwender vereinfachen können. Verwendet können die “Bedingten Formatierungen” für Objekte, die die Eigenschaften “Schrift”, “Rahmen”, “Hintergrundfarbe” oder “Format” verwenden. Details dazu finden sich auch im Designer Handbuch.

Anhand eines einfachen Beispiels soll im Folgenden gezeigt werden, wie die “Bedingte Formatierung” im Rahmen der DOM-API verwendet werden kann. Hierzu soll für eine einfache Textspalte in einer Tabelle die Eigenschaft “Schrift” in Abhängigkeit vom dargestellten Inhalt des verwendeten Feldes formatiert werden:

...
// Neue Textspalte mit dem Feld "Artikel.Nr" hinzufügen
TableFieldText objTableFieldText = new TableFieldText(objTableLineData.Fields);
objTableFieldText.Contents = "Artikel.Nr";
objTableFieldText.ConditionalFormatter.Clear();

// Objekt für die "Bedingte Formatierung" beziehen
ConditionalFormatterItem objConditionalFormatterItem = 
	new ConditionalFormatterItem(objTableFieldText.ConditionalFormatter);

// Formatierungen für "Schrift" definieren
objConditionalFormatterItem.Modifiers.Font.Bold = "True";
objConditionalFormatterItem.Modifiers.Font.Color = "LL.Color.Red";
objConditionalFormatterItem.Modifiers.Font.Italic = "True";
objConditionalFormatterItem.Modifiers.Font.Strikeout = "False";
objConditionalFormatterItem.Modifiers.Font.Underline = "True";

// Bedingung für die Formatierung definieren
objConditionalFormatterItem.Condition = "Contains(LL.CurrentValue,\"EXP\",1)";
...

Damit wird nun die Schrift für die Tabellenspalte “Artikel.Nr” rot eingefärbt, fett gemacht und unterstrichen, wenn die Artikelnummer den Text “EXP” enthält: