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!
6 Antworten
-
Hallo nochmal. Hab es hinbekommen. thx anyway
-
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.2024Nun kann man in allen Auswertungen ganz einfach auf dieses Formelfeld mit dem Datum des nächsten Geburtstags Bezug nehmen statt auf das Geburtsdatum.
-
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.
Content aside
- Status Answered
- vor 4 MonatenZuletzt aktiv
- 6Antworten
- 70Ansichten
-
3
Folge bereits