0

Datumsfilter für z.B 'nächsten Freitag'

Hallo,

das geht sicher mit weekday(Datum), aber ich bekomm es leider nicht zusammen.

(Sorry, dass ich nochmal frage)

Gruß

Oliver

17 Antworten

null
    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    außer den oben schon genannten Filter, habe ein weiteres Datum-Filterproblem:
    Wie kann ich bei folgendem Filter ergänzen, dass er nur für 2018 gilt?

    if Datum >= today() then
    format(Datum, "DD.MM.YYYY")
    else
    "a"
    end

     

    Danke und Gruß

    Oliver M.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Oliver,

    1.

    für nächsten Freitag wäre die Formel:

    let nextFriday := Datum + if weekday(Datum) < 5 then 4 else 11 end - weekday(Datum)

    2. 

    if Datum >= today() and year(Datum)=2018 then
    format(Datum, "DD.MM.YYYY")
    else
    "a"
    end

     

    Leo

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank!

    year(Datum) ist ja auch in der Referenz beschrieben, deshalb hätte ich mittlerweile schon selbst drauf kommen sollen, ich muss mich mehr anstrengen :-)

    Die Formel für "nächsten Freitag" allerdings verstehe ich irgendwie nicht, und sie funktioniert auch nicht, bzw. bekomme ich nicht raus wie ich sie einsetzen muss???
    Sie soll ja als Filter dienen wie die anderen auch.

    Gruß

    Oliver M.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Oliver,

    kannst du mir bitte erklären, wie genau filter für nächsten Freitag aussehen sollte? Datensätze von nächsten Freitag oder Datensätze ab heute bis nächsten Freitag?

     

    Leo

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    Datensätze nur vom nächsten Freitag.
    also wenn ich die Ansicht mit diesem Filter heute aufrufe, wird nur der 21.09.18 angezeigt.
    Wenn ich die Ansicht z.B. am Samstag, 22.09, aufrufe, wird nur der Freitag, 28.09.18 angezeigt..usw.

    Oliver M.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    if Datum = today()+ if weekday(today()) < 5 then 4 else 11 end - weekday(today()) then format (Datum,"DD.MM.YYYY") else "a"

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    Auweia, ich blicke überhaupt nicht durch.
    Diesmal ist es so schlimm, dass ich noch nichtmal schaffe daraus die Formel für Samstag abzuleiten *grins*
    Das verrätst du mir noch, oder?
    Dann ist aber erstmal Schluß mit der Datum-Filterei :-)

    Dankeschön Leo, mal wieder superklasse - funktioniert einwandfrei, der Wahnsinn - hätte ich in 1000 Jahren nicht hinbekommen.

     

    Gruß
    Oliver M.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Oliver, 

    eigentlich wollte ich mir der Formel reich werden, aber dir verrate ich natürlich die Logik dahinter.

    Die Woche hat 7 Tage und die Tage werden bei Ninox von 0 bis 6 nummeriert. Um von einem Tag der Woche auf Montag zurück zu kommen, muss ich eine gewisse Anzahl der Tage substrahieren. Diese Anzahl ist gleichzeitig auch die Nummer des Tages. Also myMonday:=Datum-weekday(Datum). Jetzt möchte ich aber statt Montag den nächsten Freitag haben. Von Montag bis Freitag sind genau 4 Tage, also myFriday:=Datum-weekday(Datum)+4. Das funktioniert aber nur bis Freitag. Samstag und Sontag müssen in die nächste Woche verschoben werden also plus 7 Tage (4+7=11). So komme ich dann auf die Bediengung: if Datum <5 then 4 else 11. Und die fertige Formel für den nächsten Freitag ab heute wäre:

    let nextFriday := today() + if weekday(today()) < 5 then 4 else 11 end - weekday(today()).

    Für Samstag wäre die Formell:

    let nextSaturday:=today() + if weekday(today()) < 6 then 5 else 12 end - weekday(today()).

     

    Leo

    • Tacho
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Leo,

    bei mir kommt bei Deiner "nextSaturday"-Formel für heute (Sa, den 15.09.2018) dann aber (Do, den 20.09.2018) heraus, anstelle (Sa, den22.09.2018).

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Tacho,

    bin davon ausgegangen, dass der Samstag nicht auf den nächsten Samstag umgesetzt wird. Ist natürlich Blödsinn. Die Formel sollte dann angepasst werden:

    nextSaturday:=today() + if weekday(today()) < 5 then 5 else 12 end - weekday(today())

     

    Leo

    • Tacho
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ahoi Leo,

    Deine Formel setzt ALLE Datensätze auf den nächsten Freitag.

    Bin mir aber nicht sicher, ob das von Oliver wirklich so gewollt war:

    Man hat z.B. 6 offene, fällige Rechnungen, (Fälligkeitsdatum: 18.9., 19.9., 20.9., 23.9., 24.9., 7.10).

    Bei Filter "nächsten Freitag" sollten dann nur die fälligen Rechnungen bis zum 20.9. angezeigt werden. Ist der nächste Freitag (hier im Beispiel der 21.9. erreicht) wird beim öffnen der Datenbank dann nur der 23.9. und der 24.9 angezeigt.

    Tacho

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Taho,

    nein es ist genauso von Oliver gewollt:

    "

    Hi Leo,

    Datensätze nur vom nächsten Freitag.
    also wenn ich die Ansicht mit diesem Filter heute aufrufe, wird nur der 21.09.18 angezeigt.
    Wenn ich die Ansicht z.B. am Samstag, 22.09, aufrufe, wird nur der Freitag, 28.09.18 angezeigt..usw.

    Oliver M."

     

    Also nicht bis nächsten Freitag, sollten nur am nächsten Freitag

    Leo

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank für die Schritt für Schritt Erklärung. Ist natürlich alles logisch. Aber leider für mich trotzdem immer wieder sehr schwierig selbst herzuleiten. Schön also, dass es das Forum gibt - ohne das und Leute wie euch hätte ich nie mit meiner Datanbank live gehen können.

    @ Leo & Tacho:

    Die Formeln passen für mich perfekt. In der Ansicht "Freitag" sollen alle Datensätze NUR vom nächsten Freitag angzeigt werden, und an dem Tag selbst, soll auch immer noch dieser Tag angezeigt werden. Erst ab Samstag soll der nächste Freitag zu sehen sein. Das gleiche gilt natürlich dann für die Samstags-Formel.

    Gruß

    Oliver M.

    • Tacho
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Oliver, 

    ich verstehe lediglich nicht, welchen Informationsmehrwert der Filter für Dich hat. Das Filterdatum hat ja gar nichts mit dem jeweiligen Datensatzdatum zu tun. Du läßt halt alle Datensätze anzeigen und schreibst ihnen das Datum vom "nächsten Freitag" zu.

    Mich interessiert daran nur, wofür das in der Praxis gebraucht werden könnte.

    Gruß
    Tacho

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Tacho,

    bei meinen Datensätzen geht es um Aufträge, die ein bestimmtes Datum haben.
    Die Formeln benutze ich als Filter für verschiedene Ansichten, nicht dazu die Datensätze zu ändern.

    Jetzt klar?

    Gruß
    Oliver M.

    • Tacho
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Nope, aber solange Du zufrieden bist, ist es gut!

    • CitizenDeveloper
    • Oliver_meerkamp
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Tja, ich würds schon gerne verständlich machen.

    Vielleicht denkst du bei "Datensatzdatum" an das Datum wann der Datensatz erstellt worden ist!?
    Kann das sein!?

     

    Davon ist ja nicht die rede.
    Bei mir ist 'Datum' ein Feld, an dem der Auftrag stattfindet.

    Gruß
    Oliver M.

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 17Antworten
  • 4076Ansichten