0

Datum nach Bedingungen einfärben

Ich kriege es mal wieder nicht gebacken.

Ich habe ein Datum Auftragsklarheit. Nun möchte ich gerne eine Ampelsteuerung dafür. 2 Tage vorher soll es grün sein, 1 Tag vorher gelb und am gleichen Tag rot. An sich nicht schwer, wenn es nicht auch noch Wochenenden geben würde. Wenn meine Auftragsklarheit am Montag ist, soll natürlich der Donnerstag vorher grün sein und der Freitag gelb. Ich bin schon so lange am rumexperementieren, dass er mir mittlerweile überhaupt kein Datum mehr ausspuckt. Und Feiertage möchte ich mal gar nicht ansprechen. Dafür habe ich erst recht keine Lösung. Da wird es noch verwirrender. Wie kann ich Ninox denn nach einem Feiertag suchen lassen? Benötige ich da einen extra Kalender, der Feiertage beinhaltet? Und wie suche ich innerhalb eines Zeitraumes darin. Denn wenn z.B. meine Auftragsklarheit ein Montag ist, der Freitag davor aber ein Feiertag (wo auch immer ich diese Information erhole), dann muss der Mittwoch davor grün sein und der Donnerstag gelb.

Ich bin für jeden Hinweis dankbar.

 

Gruss

Frauke

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frauke, das ist durchaus machbar, aber schon ein bisschen komplizierter. Leider habe ich keinen passenden Code parat, es gibt aber einen Thread aus dem alten Forum dazu, wo Leo einen Lösungsansatz für ein ähnliches Problem gepostet hatte:

     

    https://ninoxdb.de/de/forum/technische-hilfe-5ab8fe445fe2b42b7dd39ee8/arbeitstage-berechenen-5ab8fe445fe2b42b7dd39f1a 

     

    Darin finden sich auch Links auf Dateien mit den deutschen Feiertagen (ja, du brauchst eine extra Tabelle dafür), die allerdings nicht mehr aktuell sind (also, die Links). Gut möglich, dass sich mittlerweile auch im Webinar-Team eine solche Datenbank befindet, ich hatte mir vor einiger Zeit aber selbst mal eine erstellt (unter Berücksichtigung der in einigen Bundesländern neu geregelten Reformationstage).

     

    Ich habe sie noch mal neu auf einen Server gelegt. Als Ninox-DB:

    https://www.dropbox.com/s/1vw27iuwaxcyp65/Feiertage_D_2010-2040.ninox?dl=0

     

    Sowie als CSV-Datei:

    https://www.dropbox.com/s/tcf5jc4jucs9o0z/Feiertage_D_2010-2040.csv?dl=0

     

    Und auch nochmal ganz Ninox-like als CSV-Freigabe:

    https://share.ninoxdb.de/mmnkorrlvxnbvabaw0op0mi3rnyuwpvdihbi

     

    Letztere müsstest du als Datei unter beliebigem Namen mit der Endung ".csv" speichern und könntest sie dann direkt in eine Tabelle mit folgendem Aufbau importieren:

     

    Datum (Datum)
    Feiertag (Text)
    Wochentag (Text)

    sowie jeweils ein Ja-/Nein-Feld für die Bundesländer:
    BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH

     

    Vielleicht hilft das schon mal ein bisschen weiter.

    • frauke_printpalacede
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für deine Antwort. Werde mich mal weiter daran versuchen, obwohl ich durch diese Datumsrechnerei schon völlig verwirrt bin. Die Logik bekomme ich ja meistens noch hin aber ich scheiter dann oft an der passenden Script-Syntax.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frauke,

    Wie der Copytexter schon geschrieben hat, brauchst du eine Tabelle mit Feiertagen. Wenn du diese Tabelle angelegt hast und die Datums eingetragen hast, kannst du für dein berechnetes Feld Auftragsklarheit folgende Formel hinterlegen

    ---

    var myD := Auftragsdatum - 1;
    while weekday(myD) > 4 or cnt((select Feiertage)[Datum = myD]) > 0 do
    myD := myD - 1
    end;
    let myF := if today() >= Auftragsdatum then
    "red"
    else
    if today() >= date(myD) then "yellow" else "green" end
    end;
    styled(text(Auftragsdatum), myF)

    ----

    Eigentlich geht es darum die gelbe Farbe festzulegen. Alles junger als Gelb ist - ist grün und allse älter oder gleich als Auftragsdatum ist - ist rot. Die Formel überprüft den Tag for dem Auftrag, wenn es ein Wochenend- oder ein Feiertag ist, geht Sie einen Tag zurück usw. 

    Probier mal aus. Aber unbedingt die Tabelle Feiertage mit dem Feld Datum anlegen und statt Auftragsdatum dein Feldname eingeben.

    Leo

    • frauke_printpalacede
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Boah, Leo, ich bin überwältigt wie elegant das alles aussieht und sich im Script logisch liest. Werde ich mal gleich ausprobieren. 

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 2181Ansichten