0

Mietbeginn + "(" + 'in' + ")" farbig, wenn sich das Datum nähert

Hallo an zusammen,

 

Ich habe mehrere Ansätze hier aus dem Forum ausprobiert, aber irgendwie bekomme ich das nicht hin. Würde das überhaupt so gehen?

Mietbeginn ist ein Datumsfeld und 'in' ein Berechnungsfeld in einer Ansicht. Nunhabe ich folgenden Code von Copytexter

https://ninox.com/de/forum/technische-hilfe-5ab8fe445fe2b42b7dd39ee8/je-naher-das-datum-kommt-farbig-gestalten-5c7f79309cd8055ad71a8c86

genommen und angepasst:

 

let AnzahlTage := Mietbeginn + " ( in " + 'in.' + ")";
let Farbe := switch AnzahlTage < 181 do
case AnzahlTage < 180 and AnzahlTage >= 90:
"Ivory"
case AnzahlTage < 90 and AnzahlTage >= 30:
"Orange"
case AnzahlTage < 30 and AnzahlTage >= 3:
"Red"
case AnzahlTage < 3:
"Darkred"
default:
"Green"
end;
styled(text(AnzahlTage), Farbe)

und es sieht folgendermaßen aus:

 

Bildschirmfoto 2021-09-10 um 10.37.29

Eigentlich möchte ich erreichen, dass in xxx Tagen die es farblich hellrot ist, wahrscheinlich wäre es default. Dann weiter, wie es im Code steht, nähert man sich dem Datum, 180-90 'Ivory', 90-60 Orange usw. und wenn dann Mietbeginn ist = grün.

Ideal wäre es, wenn anstelle "in -"     "seit" stehen würde.

Ich hoffe, dass ich mich nicht zu kompliziert ausgedrückt habe.

 

Vielen Dank schon mal!

Gruß Kruna

8 Antworten

null
    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    AnzahlTage ist ja schon eine zusammengesetzte Variable und kann daher gar nicht < 180 sein...

    versuch mal so

     

    let AnzahlTage := Mietbeginn + " ( in " + 'in.' + ")";
    let Farbe := if 'in.' < 3 then
    "darkred"
    else
    if 'in.' < 30 then
    "red"
    else
    if 'in.' < 90 then
    "orange"
    else
    if 'in.' < 180 then "ivory"
    else "green" end
    end
    end
    end;
    styled(text(AnzahlTage), Farbe) 

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sorry, besser so, ich habe deinen Text unten nicht gelesen...

    So hast Du ab Tag 89 vor Mietbeginn Orange, ab 29 dann Rot, ab 3 Dunkelrot und ab 0 und drunter dann grün

     

    let AnzahlTage := Mietbeginn + " ( in " + 'in.' + ")";
    let Farbe := if 'in.' <= 0 then
    "green"
    else
    if 'in.' < 3 then
    "darkred"
    else
    if 'in.' < 30 then
    "red"
    else
    if 'in.' < 90 then
    "orange"
    end
    end
    end
    end;
    styled(text(AnzahlTage), Farbe)

    • Kruna
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias,

     

    vielen Dank für Deine Hilfe. Ich habe Deinen Code eingesetzt und jede Zeile ist nun farblos.

    Hast du ien Idee woran das liegen könnte?

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    bei mir funktioniert das am Mac in der Cloud.... ich habe allerdings statt einem berechnungsfeld "in." ein Zahlenfeld "in." benutzt, in welchem ich die verbleibenden Tage einsetze.

    Hast Du denn mal geschaut, was dir das Feld "in." ausgibt? Wie berechnest Du denn deine verbleibenden Tage?

    • Kruna
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Bei mir ist das 'in.' ein Berechnungsfeld und die verbleibenden TAge werden mit folgendem Code:

     

    let a := days(today(), Mietbeginn);
    let b := text(a + if a = 1 or a = -1 then " Tag" else " Tagen" end);
    let c_orange := color("rgb(255,239,191)");
    let c_green := color("rgb(223,255,191)");
    if not Mietbeginn then
    styled("", color("rgb(238,238,238)"))
    else
    if Mietbeginn > today() then
    styled(b, c_green)
    else
    if Mietbeginn = today() then
    styled("Heute", c_orange)
    else
    styled(b, "salmon")
    end
    end
    end

     

    berechnet.

     

    Entschuldige, ich bin mir nicht sicher, ob ich verständlich erklärt habe, was ich eigentlich erreichen möchte.

    Ich habe eine Ansicht mit diversen Spalten, eben Mietbeginn am in xxx Tagen:

     

    Bildschirmfoto 2021-09-10 um 12.32.12

    Ich wollte eigentlich diese zwei Spalten zusammenfügen, wie im ersten Bild oben dargestellt, aber so dass sich diese dann auch farblich ändern und das anstatt zb -91 Tagen, dann seit 91 Tagen steht.

    Ich arbeite auch am Mac, allerdings mit der standalone App.

    • Kruna
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Entschuldigung, dass ich noch mal nachfrage. Ist es denn möglich (odre auch nicht) die zwei Spalten quasi in eine Spalte farblich zusammenzufassen?

    Ich habe es nun in zwei Spalten und das ist ja uch ok, auch damit könnte ich sehr gut leben.

     

    Entschuldigung, auch hier noch mal die Nachfrage. Kann ich zB  bei -91 Tagen anstelle von dem minus auch ein 'seit' setzen?

     

    Vielen DAnk...

     

    Gruß Krina

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi, Du kannst ja deine bestehende Formel einfach etwas erweitern...

    Du hast in Variable a die reine Zahl deiner Tage.

    Du setzt schon in Variable b das Wort Tag oder Tage ein, da könntest Du auch schon "Mietbeginn" vorsetzen bzw. dein "seit" und "in" berechnen...

     

    let b := text("Mietbeginn "+ if a > 0 then "seit" else "in" end + replace(text(a),"-","") + if a = 1 or a = -1 then " Tag" else " Tagen" end);

    • Kruna
    • vor 3 Jahren
    • Gemeldet - anzeigen

    HAllo Tobias,

     

    das hat prima geklappt!!! TAusend Dank!

     

    Gruß Kruna