0

Kunden-Geburtstage filtern

Hallo zusammen,

ich hab folgendes knifflige Rätsel:

um die Geburtstage unserer Kunden nach bestimmten Zeiträume (z.B. heute, diese Woche, nächste Woche...) zu filtern hab ich versucht per folgenden Filter die Geburtstage in einer Ansicht zu bekommen, klappt aber leider nicht so wie ich will...

der Code für den Filter (Auswahlfeld) lautet:

switch number(Zeitraum) do
case 1:
    (
        'Von Datum' := today();
        'Bis Datum' := today()
    )
case 2:
    (
        'Von Datum' := date(year(today()), month(today()), day(today()) - weekday(today()));
        'Bis Datum' := date(year(today()), month(today()), day(today()) - weekday(today()) + 6)
    )
case 3:
    (
        'Von Datum' := date(year(today()), month(today()), day(today()) - weekday(today()) + 7);
        'Bis Datum' := date(year(today()), month(today()), day(today()) - weekday(today()) + 13)
    )
case 4:
    (
        'Von Datum' := date(year(today()), month(today()), 1);
        'Bis Datum' := date(year(today()), month(today()) + 1, 0)
    )
case 5:
    (
        'Von Datum' := date(year(today()), month(today()) + 1, 1);
        'Bis Datum' := date(year(today()), month(today()) + 2, 0)
    )
default:
    (
        'Von Datum' := null;
        'Bis Datum' := null
    )
end

In der Ansicht steht nun folgender Code:

let myStart := 'Von Datum';
let myEnd := 'Bis Datum';
    select Kunden
        where Geburtsdatum >= myStart and Geburtsdatum <= myEnd

...das bringt aber kein Ergebnis.

Bitte euch um Rat. Vielen lieben Dank! 

4 Antworten

null
    • Senectute_24
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hallo nochmal. Hab es hinbekommen. thx anyway 😉

    • Ninox-Professional
    • planoxpro
    • vor 1 Monat
    • Gemeldet - anzeigen

    Hallo Adrian, das Geburtsdatum enthält ja auch das Jahr (z. B. 1995), deshalb kann es nicht zu Übereinstimmungen kommen, wenn der Vergleichswert myDatum immer die aktuelle Jahreszahl enthält (z. B. 2024). Für eine Liste bevorstehender Geburtstage sind also Monat und Tag entscheidend, das Geburtsjahr spielt keine Rolle.

    Ich mache es in ähnlichen Fällen so, dass ich im Kunden-Datensatz mit einem Formelfeld den nächsten tatsächlichen Geburtstag berechnen und anzeigen lasse:

    let myY := year(today()) +
    if today() > date(year(today()), month(Geburtsdatum), day(Geburtsdatum))
       then 1 else 0 end;
    date(myY, month(Geburtsdatum), day(Geburtsdatum))

    Beispiele (Ergebnisse heute am 06.03.2024):

    Geburtsdatum = 02.03.1995, nächster Geburtstag am 02.03.2025
    Geburtsdatum = 18.03.2003, nächster Geburtstag am 18.03.2024

    Nun kann man in allen Auswertungen ganz einfach auf dieses Formelfeld mit dem Datum des nächsten Geburtstags Bezug nehmen statt auf das Geburtsdatum.

    • Ninox-Professional
    • planoxpro
    • vor 1 Monat
    • Gemeldet - anzeigen

    Ups, da war ich wohl ein paar Sekunden zu spät ... 

    Na ja, vielleicht hilft's trotzdem als zusätzliche Anregung.

    PS: Die Formel zur Berechnung des nächsten Geburtstags ließe sich natürlich auch in die Ansicht integrieren. Das Formelfeld im Datensatz hat (für mich) halt den Vorteil, dass die Formulierung von Bedingungen einfacher/übersichtlicher wird und dass man die Information auch sieht, wenn man den Datensatz öffnet. Aber das ist am Ende natürlich Geschmacksache.

      • Senectute_24
      • vor 1 Monat
      • Gemeldet - anzeigen

       

      Vielen lieben Dank trotzdem für Deine Antwort! War nicht ganz umsonst ;) ich finde Deinen Ansatz super und werde ihn auch (für andere Zwecke) mit einbauen.

      Wünsche noch einen schönen Tag!

Content aside

  • Status Answered
  • vor 1 MonatZuletzt aktiv
  • 4Antworten
  • 36Ansichten
  • 2 Folge bereits