Scripting

Färben von Tabellen-Grids

Table Grids sind wenig überraschend die häufigste Form, tabellarische Daten darzustellen. Das Table Grid bietet die Möglichkeit, Daten zu binden und die Spalten wunschgemäß anzupassen: Schriftart, Orientierung, Formatierung, Überschrift usw. – Es gibt allerdings häufig Attribute, die nicht statisch gesetzt werden sollen, sondern abhängig von den Dateninhalten. Darüberhinaus kann es sinnvoll sein, die Dateninhalte vor der Ausgabe in der Tabelle einer Anpassung zu unterziehen, die die Standard-Formatierung nicht unterstützt. Dieser Artikel nimmt sich exemplarisch beiden Forderungen an:

In der SAP-Tabelle sollen diejenigen Einträge welche in der Spalte “LBKUM” einen Eintrag größer 1.000 haben in Grün angezeigt werden. Diejenigen welche kleiner als 1.000 sind sollen in Rot dargestellt werden.

image_1

Die Formatierungs- und Änderungslogik wird in ein Skript abgebildet. Das Skript wird für jede Tabellenzeile genau einmal durchlaufen unmittelbar bevor sie in der Visualisierung ausgegeben wird. Sie erreichen den Skript-Editor vom Events-Attribut des Table Grid Elements aus:

image_1

Innerhalb des Events gibt es die Variable e. Sie repräsentiert die aktuelle Tabenllezeile.

Daraus ergibt sich folgendes einfaches Script, um die Anforderungen von oben umzusetzen:

if math.tonumber(table.getcelltext(e, 2)) > 1000 then
 e.Columns[4].TextControl.Foreground = Brushes.Green
else
 e.Columns[4].CellControl.Foreground = Brushes.Red
end

Hier die Voransicht mit entsprechendem Formatierungsscript:

image_1