Definition
Menüaufruf: (Konfiguration) - (Datenquellen) - (Berechnetes Attribut)
Ein berechnetes Attribut ist ein einzelner Rückgabewert einer Datenbankabfrage, der im Businessobjekt mit einem Feld verknüpft werden kann. Somit kann dieser Wert in der Maske zur Laufzeit angezeigt werden, ohne dass für dessen Aktualisierung eine Aktion vom Benutzer nötig wird.
Berechnete Attribute haben gegenüber Funktionen in Datenbankobjekten den Vorteil, dass man bei der Berechnung noch ein paar Kontext-Variablen zur Verfügung hat, z.B.
- username
- mandator
Beim Mandanten / mandator muss der Platzhalter extra geklammert werden, z.B. so
select pm.strvalue from t_md_nucletparameter inner join t_md_mandator_param_value pm on t_md_nucletparameter.struid where pm.struid_t_md_nuclet_param where strparameter = 'Nucletparameter x' and pm.struid_t_md_mandator = ('$mandator')
Wichtiger Hinweis
In der Datenquelle sollte nicht "t" als Tabellen-Alias verwendet werden, da dieser schon von Nuclos verwendet wird und es dadurch zu falschen Ergebnissen kommen kann.
Dynamische Hintergrundfarbe eines Attributs
Dieses Feature steht ab Nuclos 4.2024.5 zur Verfügung.
Der Richclient bietet die Möglichkeit die Hintergrundfarbe einer Komponente für ein Attribut mittels Groovy-Skript zu bestimmen (s.a. Regeln (clientseitig)).
Da Groovy-Skripte im Webclient nicht ausgewertet werden können, bietet Nuclos alternativ die Verwendung einer Datenquelle ("Berechnetes Attribut") an, die den Farbwert als hex-kodierten String zurückliefert, bspw #00ff00
für die Farbe "grün".
Diese Datenquellen werden wie gewohnt über den Menüpunkt "Datenquellen → Berechnetes Attribut" angelegt. Es stehen die folgenden Parameter zur Verfügung:
Parameter | Datentyp | Beschreibung |
---|---|---|
intid | Long | Liefert die ID des Datensatzes |
strfield | String | Name des Attributs, für das die Hintergrundfarbe bestimmt werden soll. |
struidfield | String | UID des Attributs, für das die Hintergrundfarbe bestimmt werden soll. |
fieldvalue | Intern: SQL | Wert des Attributs, für das die Hintergrundfarbe bestimmt werden soll. Dieser Parameter wird durch ein SQL-Snippet ersetzt. Als Valuelist Provider für die SQL Whitelist muss Handelt es sich um einen Wert, der quotiert werden muss, wie bspw. einen Text, muss bei Anzeigename folgender Text eingetragen werden: Falls die Hintergrundfarbe für ein berechnetes Attribut (Wert wird von Datenquelle oder DB-Funktion geliefert) bestimmt werden soll, wird der Parameter durch das SQL aus der Datenquelle, bzw. den Aufruf der DB-Funktion ersetzt. |
username | String | Benutzername des aktuellen Benutzers. |
mandator | String | Liste der UIDs der für den aktuellen Benutzer gültigen Mandanten |
Hierarchie zur Bestimmung der Hintergrundfarbe einer Komponente
Richclient: Groovy-Skript > Datenquelle > nuclosrowcolor
(nur relevant für Ergebnisliste oder Unterformular) > statische Hintergrundfarbe aus Layout
Webclient: Datenquelle > nuclosrowcolor
(nur relevant für Ergebnisliste oder Unterformular) > statische Hintergrundfarbe aus Layout
Beispiel
SELECT CASE WHEN $fieldvalue IS NULL THEN null WHEN $fieldvalue > 100 THEN '#00ff00' ELSE '#ff0000' END as color