Überarbeitung des Codes zur Wartungsanzeige für verzögerte "Rot"-Statusanzeige
Hallo zusammen
Der folgende Code überprüft den Wert der Variablen "Wartung" und verarbeitet die Wartungsdaten. Er berechnet das Datum "EinJahrSpaeter" basierend auf dem letzten Wartungsdatum und einer angegebenen Anzahl von Jahren als Zyklus. Das formatierte Datum wird dann mit einem entsprechenden Status ausgegeben.
Die gewünschte Änderung besteht darin, dass der Status "rot" erst aktiviert werden soll, nachdem der betreffende Monat vollendet wurde. In der ursprünglichen Version des Codes wurde der Status "rot" bereits angezeigt, wenn der Tag überschritten wurde.
Um dies zu ändern, muss der Code umgeschrieben werden, sodass der Status "rot" erst angezeigt wird, wenn das aktuelle Jahr größer als das Jahr von "EinJahrSpaeter" ist und der aktuelle Monat größer als der Monat von "EinJahrSpaeter". Dadurch wird sichergestellt, dass der Status "rot" erst nach der Vollendung des Monats aktiv wird.
Leider treten beim aktuellen Code drei Fehlermeldungen auf, und ich finde keine Lösung, diese zu beheben.
Angepasstes Skript:
if Wartung = 1 then
let LetzteWartung := last(Wartungsregister.' Ausgeführt');
let EinJahrSpaeter := date(year(LetzteWartung) + number(text('Int./Jahr')), month(LetzteWartung), day(LetzteWartung));
let myM := month(EinJahrSpaeter);
let currentDate := today();
let currentYear := year(currentDate);
let currentMonth := month(currentDate);
let isMonthExceeded := if currentYear > year(EinJahrSpaeter) || (currentYear = year(EinJahrSpaeter) && currentMonth > myM) then true else false;
let status := if isMonthExceeded then "red" else if currentDate > EinJahrSpaeter then "orange" else "green";
styled(format(EinJahrSpaeter, "DD.MM.YYYY"), status)
end
Meldungsausgabe:
Jemand eine Idee wie sich das beheben lässt?
Ursprüngliche Skript:
if Wartung = 1 then
let LetzteWartung := last(Wartungsregister.' Ausgeführt');
let 'EinJahrSpäter' := date(year(LetzteWartung) + number(text('Int./Jahr')), month(LetzteWartung), day(LetzteWartung));
format('EinJahrSpäter', "DD.MM.YYYY");
let myD := number(item(split(text('EinJahrSpäter'), "."), 0));
let myM := number(item(split(text('EinJahrSpäter'), "."), 1));
let myJ := number(item(split(text('EinJahrSpäter'), "."), 2));
date(myJ, myM, myD);
let 'EinJahrSpäter' := date(year(LetzteWartung) + number(text('Int./Jahr')), month(LetzteWartung), day(LetzteWartung));
styled(format('EinJahrSpäter', "DD.MM.YYYY"), if today() > 'EinJahrSpäter' then
"red"
else
if 'EinJahrSpäter' < 60 then "Orange" else "Green" end
end)
end
Freue mich auf eure Rückmeldung.
4 Antworten
-
let isMonthExceeded := if (currentYear > year(EinJahrSpaeter) or currentYear = year(EinJahrSpaeter)) and currentMonth > myM then true else false end;
eigentlich sollte es auch kürzer gehen:
let isMonthExceeded := if not currentYear < year(EinJahrSpaeter) and currentMonth > myM then true else false end;
Content aside
- vor 1 JahrZuletzt aktiv
- 4Antworten
- 42Ansichten
-
2
Folge bereits