Autor Thema: "Gleitender" Filter im Auswahl-Assi zur Anzeige der letzten x Geschäftsjahre  (Gelesen 282 mal)

Shorty11

  • Newbie
  • *
  • Beiträge: 3
Hallo an alle,

ich arbeite mit Crystal Report XI.

Das Unternehmen für welches ich arbeite hat ein zum Kalenderjahr abweichendes Geschäftsjahr.

Nun möchte ich innerhalb eines Berichts im Auswahl-Assistenten einen "gleitenden" Filter setzen, der mir immer die Datensätze der letzten vier Geschäftsjahre anzeigt.

Allerdings habe ich keinen Ansatz zu einer funktionierenden Lösung. Möglicherweise gibt es hier jemand der mir weiterhelfen könnte. Bereits jetzt vielen Dank für alle konstruktiven Lösungshinweise.


Bis jetzt habe ich 3 Formeln erstellt, die mir die Datumswerte auf das abweichende Geschäftsjahr umswitchen.

Eine für das Jahr, das Quartal und den Monat:

Jahr
SWITCH(
{@USforQuartal}="Q4", "FY"&ToText(year({relfr.StatDatum})-1,0, "", "")&"/"&ToText(year({relfr.StatDatum}),0, "", ""),
{@USforQuartal}="Q1", "FY"&ToText(year({relfr.StatDatum}),0, "", "")&"/"&ToText(year({relfr.StatDatum})+1,0, "", ""),
{@USforQuartal}="Q2", "FY"&ToText(year({relfr.StatDatum}),0, "", "")&"/"&ToText(year({relfr.StatDatum})+1,0, "", ""),
{@USforQuartal}="Q3", "FY"&ToText(year({relfr.StatDatum}),0, "", "")&"/"&ToText(year({relfr.StatDatum})+1,0, "", ""))

Quartal
if ROUNDUP(MONTH({relFr.StatDatum})/3,0)=1 then "Q4" else
if ROUNDUP(MONTH({relFr.StatDatum})/3,0)=2 then "Q1" else
if ROUNDUP(MONTH({relFr.StatDatum})/3,0)=3 then "Q2" else
if ROUNDUP(MONTH({relFr.StatDatum})/3,0)=4 then "Q3"

Monat

SWITCH(MONTH({relfr.StatDatum})=1, 10,
MONTH({relfr.StatDatum})=2,11,
MONTH({relfr.StatDatum})=3,12,
MONTH({relfr.StatDatum})=4,1,
MONTH({relfr.StatDatum})=5,2,
MONTH({relfr.StatDatum})=6,3,
MONTH({relfr.StatDatum})=7,4,
MONTH({relfr.StatDatum})=8,5,
MONTH({relfr.StatDatum})=9,6,
MONTH({relfr.StatDatum})=10,7,
MONTH({relfr.StatDatum})=11,8,
MONTH({relfr.StatDatum})=12,9)



Mit freundlichen Grüßen

Shorty11

plinni

  • Experte
  • *****
  • Beiträge: 163
Hi,

schau dir mal die Funktion DateAdd() an. Mit dieser solltest hinkommen. Man kann in der Funktion negative Parameter übergeben.

Shorty11

  • Newbie
  • *
  • Beiträge: 3
Hallo Plinni,

vielen Dank für die Antwort.

Hast du vielleicht noch einen Lösungsansatz?

Wenn das Kalenderjahr dem Geschäftsjahr entsprechen würde, dann könnte die Formel wie folgt lauten:

year({Datumsfeld}) > (Year(CurrentDate)-4)

Wie aber kann ich diese Formel nun auf das abweichende Geschäftsjahr (01.04. - 31.03.) anpassen und dabei dynamisch bleiben. D. h. nicht immer den Report um die neue Geschäftsperiode erweitern müssen.

Grüße

hgfa

  • Experte
  • *****
  • Beiträge: 1771
Hallo,
Datensatzauswahl:
{DatumsFeld} >= Date(Year(CurrentDate)-4,4,1)Geschaeftsjahre durch entsprechende Gruppierung.
Gruss Hansgeorg

Shorty11

  • Newbie
  • *
  • Beiträge: 3
Hallo,
Datensatzauswahl:
{DatumsFeld} >= Date(Year(CurrentDate)-4,4,1)Geschaeftsjahre durch entsprechende Gruppierung.
Gruss Hansgeorg


Vielen vielen Dank Hansgeorg! Funktioniert einwandfrei!

Gruß