0

Wie lässt sich die color-Funktion nutzen?

Hallo, da der erste Beitrag ja offenbar immer im Nirwana verschwindet, poste ich den Text zwei mal …

Problem: Ich würde bei dem einen oder anderen Feld je nach dessen Wert gerne die Farbe des Textes und/oder des Hintergrundes ändern (z. B. klassisch: Rot bei Minusbetrag). Nun habe ich in der Funktionsreferenz zwar eine color-Funktion gefunden, zur praktischen Anwendung fehlt mir aber jeglicher Kontext.

Lässt sich die color-Funktion für den beschriebenen Zweck nutzen? Und wenn ja: Wie müsste man das genau formulieren?

Über Tipps und Hinweise würde ich mich freuen.

7 Antworten

null
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Dazu gab es in den FAQ schon diesen Beitrag:
    in einem Formel Feld kann man Farben ansprechen:
    if Feld = 1 then
    color("green")
    else
    color("red")

    und diesen

    let mySum := 'Vergütung Krankenkassen' - Rechnungsbetrag;
    if mySum < 0 then
    html("<span style='color:red'>"+ mySum +"</span>")
    else
    html("<span style='color:Black'>"+ mySum +"</span>")

    Vielleicht hilft's Dir ja weiter
    • AxelE
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Holzi, danke für den Versuch, aber auch nach einer weiteren Stunde des Herumprobierens bekomme ich es nicht hin. In einem älteren Support-Kommentar las ich, das mit dem Verändern der Farben sei so noch gar nicht implementiert. Vielleicht gilt das immer noch. Es ist mir im Moment jedenfalls nicht wichtig genug, um da noch mehr Zeit zu investieren, deshalb schiebe ich die Sache in der Prioritätenliste jetzt erst mal weit nach unten.

    Trotzdem danke für deine Bemühungen. Irgendwann wird das Thema sicher wieder aufkommen. ;)
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Gerne
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo AxelE,

    mit dem Update ist eine neue Funktion "styled" gekommen. Der Syntax:
    styled(text, color, icon), z.B. styled("Attention", "red", "warn")
    Das gilt, so weit ich ausprobiert habe nur für berechnete Felder.

    in deinem Fall wäre die Formel etwa so:
    ---
    let AA := Zahl;
    if AA < 0 then
    styled(text(AA), "red")
    else
    styled(text(AA), "black")
    end

    ---

    Leo
    • Holzi
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Guten Morgen Leo,
    den Tip kann ich auch gerade gut gebrauchen.

    Warum die NINOX-Entwickler das Update nicht ordentlich dokumentieren ist mir ein Rätsel. So sucht mal wieder jeder vor sich hin.
    • AxelE
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo, danke für den Tipp. Habe ihn eben auf die Schnelle mit einem Berechnungsfeld ausprobiert, und - er funktioniert. Es ändern sich Text- und Hintergrundfarbe (Weiß auf Rot; bei „color“ bekam ich nur ein rotes Feld ohne sichtbaren Inhalt). Der Inhalt ist als Text nun zwar links ausgerichtet, aber na ja - man freut sich ja über jeden kleinen Fortschritt.

    Vermutlich wäre mit dieser styled-Funktion noch mehr möglich, aber ob wir das jemals erfahren werden? ;)
    • AxelE
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Kleine Ergänzung zum Thema "styled". Ich war fälschlicherweise davon ausgegangen, dass man die Funktion überall anwenden kann, um Felder zu formatieren, also bspw. in der Art: 'DatenfeldXY := styled(text, color, icon)'. Das funktioniert jedoch nicht. Es erschien bei meinen diversen Versuchen zwar nie eine Fehlermeldung, aber als Ergebnis stand im DatenfeldXY immer nur "[object Object]".

    Die styled-Funktion bezieht sich quasi immer auf sich selbst, muss also in "Funktion" des zu formatierendes Feldes (hier: DatenfeldXY) angegeben werden. Zum Beispiel so (schematisch):

    let DokTitel := [STRING]; (z. B. "Auftrag")
    let DokFarbe := [STRING]; (z. B. "rgb(255,250,195)")
    let DokIkone := [STRING]; (z. B. "tool")
    styled(DokTitel, DokFarbe, DokIkone)

    Das funktioniert und sieht im Ergebnis genauso aus wie bei Auswahlfeldern: Ein Symbol ("tool"), gefolgt vom Text ("Auftrag") auf gelbem Hintergrund ("rgb(255, 250,195)").

    Wobei [STRING] natürlich auch aus Datenfeldern ausgelesen oder durch eine if- bzw. case-Struktur generiert werden kann.

    Gut möglich, dass euch das alles völlig klar war. Ich dokumentiere es der Vollständigkeit halber dennoch für den Fall, dass mal jemand einen ähnlichen Denkfehler begeht wie ich. Zumal die offizielle "Dokumentation" aktuell offenbar nicht mehr hergibt als diesen Hinweis auf der Whats-New-Seite:

    »Create styled text elements: styled(text, color, icon), e.g. styled("Attention", "red", "warn")«

    Und wenn ich gerade dabei bin: Frohes neues Jahr allerseits! Soviel Zeit muss sein. ;)

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 7Antworten
  • 6891Ansichten