Datumsfilter

21. Oktober 2008 08:57

Hallo Leute,

ich habe im Navision eine Matrix, die einen Datumsfilter bietet. Wenn man da ein Datum eingiebt, filtert er alle Ergebnisse, bis zum eingegebenen Datum. Ich möchte aber, dass ich auch eine Periode eingeben kann.
Im bestehenden Objekt habe ich folgenden Code gefunden:


Name DataType Subtype Length
Calendario Record Date
GestioneFormPeriodo Codeunit PeriodFormManagement

Code:
IF GETFILTER("Filtro per Data") <> '' THEN BEGIN
  Calendario.SETFILTER("Period Start",GETFILTER("Filtro per Data"));
  IF NOT GestioneFormPeriodo.FindDate('+',Calendario,TipoPeriodo) THEN
    GestioneFormPeriodo.FindDate('+',Calendario,TipoPeriodo::Giorno);
  Calendario.SETRANGE("Period Start");
END;
GestioneFormPeriodo.FindDate(TestoRicerca,Calendario,TipoPeriodo);
SETRANGE("Filtro per Data",Calendario."Period Start",Calendario."Period End");
IF GETRANGEMIN("Filtro per Data") = GETRANGEMAX("Filtro per Data") THEN
  SETRANGE("Filtro per Data",GETRANGEMIN("Filtro per Data"));


Kann man das nicht vereinfachen und einfach so schreiben?

Code:
IF GETFILTER("Filtro per Data") = '' THEN
  SETRANGE("Filtro per Data",01011900D,31129998D)
ELSE
  SETRANGE("Filtro per Data",GETRANGEMIN("Filtro per Data"),GETRANGEMAX("Filtro per Data"));


Brauche hier ein wenig Unterstützung :)

Grüße

Re: Datumsfilter

21. Oktober 2008 18:36

Schau Dir mal in Codeunit 1 die Funktion(en) MakeDateFilter et al. an.