| Auszug | ||
|---|---|---|
| ||
Nuclos berechnetes Attribut Datenquelle: INTID, $username, $mandator, dynamische Hintergrundfarbe, attributeColorSQLWhitelist, SQL-Beispiel. |
Sprache: Deutsch · English
Berechnetes Attribut über eine Datenquelle – mit Kontext-Variablen und dynamischer Hintergrundfarbe für den Webclient.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | |||||
|---|---|---|---|---|---|
| |||||
Auf dieser Seite
|
|
...
Ein berechnetes Attribut ist ein einzelner Rückgabewert einer Datenbankabfrage, der im Businessobjekt mit einem Feld verknüpft
...
und zur Laufzeit angezeigt
...
wird – ohne Benutzeraktion.
Menüaufruf: Konfiguration → Datenquellen → Berechnetes Attribut
| Info | ||
|---|---|---|
| ||
Gegenüber Funktionen in Datenbankobjekten haben Datenquellen-basierte Attribute den Vorteil zusätzlicher Kontext-Variablen wie |
Die Datenquelle braucht einen Parameter für die INTID des Datensatzes, in dem das Attribut eingeblendet wird. Der Rückgabewert muss dem anzuzeigenden Wert entsprechen; im Businessobjekt wird bei der Verknüpfung derselbe Datentyp gewählt.
| Warnung | ||
|---|---|---|
| ||
Verwende in der Datenquelle nicht |
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.
...
| Codeblock | ||
|---|---|---|
|
...
Businessobjekt |
Datenquelle eines berechneten Attributs.
Da Groovy-Skripte im Webclient nicht ausgewertet werden, kann eine Datenquelle vom Typ Berechnetes Attribut die Hintergrundfarbe einer Komponente als hex-kodierten String liefern (z.B. #00ff00). Verfügbare Parameter u.a.: intid, strfield, struidfield, fieldvalue (SQL-Snippet, Whitelist attributeColorSQLWhitelist), username, mandator.
| Codeblock | ||
|---|---|---|
|
...
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') |
| Info | ||
|---|---|---|
| ||
Priorität Richclient: Groovy > Datenquelle > |
| 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. |
Ein Berechnetes Attribut kann über eine Datenquelle definiert werden.
Benötigt wird ein Parameter für die INTID des Datensatzes, in dem das Attribut eingeblendet werden soll. Dieses muss in der Abfrage entsprechend berücksichigt werden, wenn es einen Bezug zum Hauptdatensatz geben soll.
Der Rückgabewert muss dem Wert entsprechen, der im Attribut angezeigt werden soll. Im Businessobjekt muss später bei der Verknüpfung der gleiche Datentyp gewählt werden.
Weitere Beispiele:
| Info |
|---|
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:
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 attributeColorSQLWhitelist ausgewählt werden.
Handelt es sich um einen Wert, der quotiert werden muss, wie bspw. einen Text, muss bei Anzeigename folgender Text eingetragen werden: '
Bei Werten, die nicht quotiert werden müssen, wie bspw. boolschen oder numerischen Werten, bleibt der Anzeigeausdruck leer.
| Info |
|---|
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. |
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
| Codeblock | ||
|---|---|---|
| ||
SELECT
CASE
WHEN $fieldvalue IS NULL THEN null
WHEN $fieldvalue > 100 THEN '#00ff00'
ELSE '#ff0000'
END as color |
HOW TO: Berechnetes Attribut anlegen
| borderColor | green |
|---|---|
| titleColor | blue |
| borderWidth | 10 |
| borderStyle | solid |
| title | Berechnetes Attribut anlegen |
Ein berechnetes Attribut erstellen, das zur Laufzeit Werte basierend auf anderen Daten liefert.
Rechte zum Konfigurieren von Datenquellen oder Datenbankobjekten
Kenntnisse zur gewünschten Berechnungslogik
Wechsle zu:
Konfiguration → Datenquellen → Berechnetes Attribut
Klicke auf Neu / Add.
Parameter „intid“ hinzufügen (für die Datensatz-ID)
Weitere Parameter je nach Berechnungslogik
Im Businessobjekt-Attributhandling ein neues Attribut anlegen und dort diese Datenquelle als Berechnungsvorschrift verwenden (Schritt 7 im Wizard).
Wert erscheint in Maske zur Laufzeit
Wird dynamisch berechnet, nicht gespeichert