Je näher das Datum kommt farbig gestalten?
Hallo wir haben eine Datumspalte als Termin für Projekte. Nun wäre es super, wenn man die Spalt farbig gestalten könnte, je näher man an den Termin kommt. Geht das?
15 Antworten
-
Eine Datumsspalte lässt sich nicht farblich verändern. Ein Berechnungsfeld allerdings schon. Ihr müsstet also dafür ein Berechnungsfeld verwenden.
-
soweit ich weiß, geht das nicht automatisch.. du musst die abstände und die farben selber definieren.... ich hab mal sowas ähnliches umgesetzt.. hier die formel (allerdings nicht für datumfelder sondern für Prozente 0-100:
Tabelle.(Farbfeld :=
if Prozent < 17 then "#F8E0E0"
else
if Prozent < 34 then "#F6CECE"
else
if Prozent < 51 then "#F5A9A9"
else
if Prozent < 71 then "#F78181"
else
if Prozent < 91 then "#FA5858"
else
if Prozent <= 100 then "#FF0000"
else "FFFFFF"
end
end
end
end
end
end);so in etwa.. LG Rene
-
Hier mal ein Vorschlag für Euch:
Ihr braucht ein Datumsfeld mit der Bezeichnung "Datum" für das Datum und ein Berechnungsfeld.
let AktuellesDatum := day(today());
let Tage := day(Datum) - AktuellesDatum;
var Stil := switch Tage > 0 do
case Tage < 1:
"rgb(250, 112, 104)"
case Tage >= 1 and Tage < 2:
"rgb(246, 122, 107)"
case Tage >= 2 and Tage < 3:
"rgb(241, 133, 109)"
case Tage >= 3 and Tage < 4:
"rgb(237, 143, 111)"
case Tage >= 4 and Tage < 5:
"rgb(232, 153, 113)"
case Tage >= 5 and Tage < 6:
"rgb(228, 163, 116)"
case Tage >= 6 and Tage < 7:
"rgb(223, 173, 118)"
case Tage >= 7 and Tage < 8:
"rgb(219, 184, 120)"
case Tage >= 8 and Tage < 9:
"rgb(214, 194, 122)"
case Tage >= 9 and Tage < 10:
"rgb(210, 204, 125)"
case Tage >= 10 and Tage < 11:
"rgb(205, 214, 127)"
case Tage >= 11 and Tage < 12:
"rgb(201, 224, 129)"
case Tage >= 12 and Tage < 13:
"rgb(196, 235, 131)"
case Tage >= 13 and Tage < 14:
"rgb(192, 245, 134)"
case Tage >= 14:
"rgb(187, 255, 136)"
end;
styled(text("nur noch ") + text(Tage) + text(" Tag(e)"), Stil, if Tage < 14 then "white" else "black" end, "")Jetzt wird je näher der Termin rückt das Berechnungsfeld dunkler.
Gruß Michael
-
Vorschlag. Zusätzliches Funktionsfeld mit folgendem Code erstellen (DATUM durch den Namen des Feldes ersetzen):
let AnzahlTage := days(today(), DATUM);
let Farbe := switch AnzahlTage < 31 do
case AnzahlTage < 30 and AnzahlTage >= 20:
"Yellow"
case AnzahlTage < 20 and AnzahlTage >= 10:
"Orange"
case AnzahlTage < 10 and AnzahlTage >= 3:
"Red"
case AnzahlTage < 3:
"Darkred"
default:
"Green"
end;
styled(text(Datum), Farbe)
Dieses Funktionsfeld nun statt des Datumsfeldes in der Tabellenansicht einblenden. Im Formular kann man es ausblenden, wenn man es dort nicht sehen will. Die Zahlen sind natürlich auch nur Beispiele.
-
Ups, Michael war schneller. Bei so vielen 'case' würde ich allerdings vielleicht eher mit einer Schleife arbeiten.
-
@Copytexter
Würde ich gerne mit einer Schleife machen, nur soweit bin ich noch nicht :-( -
Das ist nun wirklich keine Schande. So eine Idee ist schnell mal eingeworfen, aber im "Ernstfall" müsste ich auch echt überlegen, ob und wie genau das umzusetzen wäre. ;)
-
Habe den Code von Michael mal etwas gekürzt stehe da mehr auf clean Code :D
let Tage := day(Datum - today());
let clr := color(number(250 - Tage * 4), number(112 + Tage * 10), number(104 + Tage * 3));
styled(text("nur noch ") + text(Tage) + text(" Tag(e)"), clr, if Tage < 14 then "white" else "black" end, "")Das einzige Problem ist jetzt wie aber auch schon bei Michael das ab 31 Tage wieder gesagt wird es sind nur noch 1 Tag übrig usw weil immer mit dem Monatstagen gerechnet wird, da habe ich mir jetzt keinen Kopf zu gemacht.
Schöne Grüße
Marwin
-
Update: mit richtigen Tagesabständen auch über 31 Tage :p
let Tage := days(today(), Datum);
let clr := color(number(250 - Tage * 4), number(112 + Tage * 10), number(104 + Tage * 3));
if Tage > 20 then
clr := color(number(170), number(255), number(164))
end;
styled(text("nur noch ") + text(Tage) + text(" Tag(e)"), clr, "black", "") -
Alter Falter Marwin, dein Code sieht bedeutend besser aus. Wie bist auf die Umrechnung der Farben gekommen?
-
Ja, das ist natürlich auch eine gute Lösung.
-
Michael habe einfach den ungefähren Wert genommen den du pro Tag auch abgezogen/hinzugefügt hast. :) Teamwork :D
-
Perfekte LÖSUNG! DANKE! Habe es jetzt noch etwas adaptiert, vielleicht braucht es jemand auch umgekehrt.. Für Termine die in der Vergangenheit liegen rötere Untermalung, für jüngere Termine grüner... man braucht ein ZEITRAUM Nummernfeld, in dem man angibt wieviel Tage in der Spanne sein sollen...
let myZEITRAUM := ZEITRAUM
let myTAGE := days(today(), Datum) * -1;
let myCOLOR := color(number(26 + myTAGE * 231 / myZEITRAUM), number(188 - myTAGE * 76 / myZEITRAUM), number(156 - myTAGE * 60 / myZEITRAUM));
if myTAGE >= myZEITRAUM then
myCOLOR := color(number(231), number(76), number(60))
end;
if myTAGE < 1 then
styled(text("HEUTE"), myCOLOR, "black", "")
else
if myTAGE = 1 then
styled(text(myTAGE) + text(" Tag"), myCOLOR, "black", "")
else
styled(text(myTAGE) + text(" Tagen"), myCOLOR, "black", "")
end
end -
Coooool oder Knorke wie es hier nu immer heisst :-) So wird meine Sache nie fertig :-)
-
Hallo,
ich habe das Berechnungsfeld angelegt und möchte dies in der Tabellenansicht angezeigt bekommen. Hier habe ich jedoch die Schwierigkeit, daß mir die restliche Tage nicht chronologisch angezeigt werden. Die Anzeige der abgelaufenen Tage ( 0 Tage ) wird noch klar zusammengefasst im unteren Bereich der Tabelle, die anderen Resttage jedoch willkürlich.Die verschiedenen Anzeige Modi (Gruppiert, Auf- u. Absteigend) hab ich schon mal probiert, keine Veränderung . Hat jemand eine Idee?
Content aside
- vor 4 JahrenZuletzt aktiv
- 15Antworten
- 3505Ansichten