Skript für Farbänderung eines Feldes im Webclient durch Eingabehilfe

Hallo zusammen,

da ich mich mit der Skriptsprache im Webclient nicht auskenne, könnt ihr mir vielleicht helfen.
Ich brauche ein Skript für die Änderung der Hintergrundfarbe eines Feldes, wenn ich über die Eingabehilfe
eine anderen vordefinierten Inhalt wähle.

Feld ist "N"
Eingabehilfewerte sind "TM", "VF", "TF", "OT"
Hintergrundfarbe bei "TM" soll Grün sein
Hintergrundfarbe bei "VF" soll Blau sein
Hintergrundfarbe bei "TF" soll Gelb sein
Hintergrundfarbe bei "OT" soll Rot sein
Hintergrundfarbe ohne Auswahl soll Weiß sein

Danke im Voraus.

Noch eine Frage zur Listenansicht im Webclient.
Gibt es hier auch die Möglichkeit wie beim Desktopclient in der Listenansicht Farbklassifizierungen zu nutzen?

Viele Grüße

Frank
 

Axel Schnee

Super Moderator
Hallo Frank,

bezüglich der ersten Frage dies lässt sich nur auf der lesenden Maske im Webclient umsetzen.
Ich gehe davon aus, dass der App-Designer bekannt und schon verwendet wurde.
Das Skript für die dynamische Farbänderung muss in folgendem Skriptfeld hinterlegt werden:

1727688075817.png

Initial wird das Skriptfeld mit der Standard-Hintergrundfarbe befüllt:

import { Color } from "smartdesign.base/color";
export async function computeColor(): Promise<Color> {
return Color.hex("#FFF");
}

Dieses Skript kann dann wie folgt erweitert werden:

import { Color } from "smartdesign.base/color";
export async function computeColor(): Promise<Color> {
//Erstellt eine Variable, welcher der aktuelle Inhalt des Feldes zugewiesen wird.
const value = $do.N.get();

//Gleicht den Inhalt des Feldes mit den verschiedenen Eingabehilfen ab und gibt die entsprechende Farbe zurück.
if(value == $do.N.values.TM){
return Color.hex("#26A642"); //Grün
}else if(value == $do.N.values.VF){
return Color.hex("#2576C7"); //Blau
}else if(value == $do.N.values.TF){
return Color.hex("#FFD97B"); //Gelb
}else if(value == $do.N.values.OT){
return Color.hex("#EA2138"); //Rot

//Der Abgleich in Zeile 17 ist ein Beispiel für Eingabehilfen, welche nicht nur aus einem Wort bestehen. Wichtig: muss genau der Eingabehilfe entsprechen!
}else if(value == $do.N.values["TM / TF"]){
return Color.hex("#EA2138"); //Rot
//Ende des Beispiels

}else{
return Color.hex("#FFF");
}
}

Die Zeile mit den zwei // stellen Kommentarzeilen dar, diese haben keinen Einfluss auf das Verhalten und dienen nur dem Verständnis.

Bezüglich der Frage zur Listenansicht, dies ist im Webclient zum aktuellen Zeitpunkt nicht möglich.

Beste Grüsse
Axel
 
Oben Unten