[Gelöst] Datumsformel im Report

19. April 2017 10:59

Hallo zusammen,

ich möchte gerne in einem Report mit Fälligkeitsdaten arbeiten. Ein Fälligkeitsdatum soll ermittelt werden, in dem vom Startdatum eines Seminars eine Datumsformel abzogen wird.

Ich habe dafür eine Datumsvariable innerhalb des Reports erstellt (DatEinlad) und folgendes im C/AL-Editor im "On After Get Record" des entsprechenden DataItems eingegeben:

DatEinlad := CALCDATE ('<-28t>', "Start date");


Beim Ausführen des Reports bekomme ich folgende Meldung:

Die Datumsformel '-28t' sollte eine Zeiteinheit enthalten.

Die Zeiteinheiten sind: T, TW, W, M, Q oder J.
Die Bedeutung von 'L' ist 'Laufende (Zeiteinheit)' und kann jeder Zeiteinheit voran gestellt werden.


Was mache ich falsch??

Gibt es Alternativen zu meinem Vorgehen? Ziel des ganzen ist: ich möchte eine Liste generieren, die die Veranstaltungen enthält, die in den nächsten 7 Tage eingeladen, vorbereitet und die Druckvorlagen erstellt werden müssen. Ich habe dafür jetzt 3 Variablen erstellt, um die 3 Fälligkeitsdaten zu ermitteln und würde dann über 3 Sections die Daten anzeigen sollen, die in den nächsten 7 Tagen stattfinden.
Zuletzt geändert von ABARA am 19. April 2017 14:16, insgesamt 1-mal geändert.

Re: Datumsformel im Report

19. April 2017 11:21

Herzlich Willkommen bei uns!

Es gibt zwei Notationsarten für eine Datumsformel in C/AL:
  1. In lokalem Format, wo die Buchstaben der lokalen Sprache verwendet werden, z.B. Tag = T und Jahr = J
    Code:
    DatEinlad := CALCDATE ('-28t', "Start date");
    Dieser Code führt zum Laufzeitfehler, wenn NAV auf Englisch läuft!

  2. In englischer Notation, immer ausführbar: Day = D, Year = Y
    Code:
    DatEinlad := CALCDATE ('<-28D>', "Start date");

Dein Code hat nicht funktionert, weil du mit den spitzen Klammen die englische Notation (Version 2) eingeleitet hast, dann aber ein deutsches Kürzel (T) verwendet hast.

Re: Datumsformel im Report

19. April 2017 11:29

Vielen Dank für die schnelle Antwort und die Willkommensgrüße!!

Leider bekomme ich die gleiche Fehlermeldung, wenn ich die spitzen Klammern aus der Formel entferne:


DatEinlad := CALCDATE ('-28t', "Start date");

Ich hatte auch zuerst die englische Variante drin stehen, da diese aber auch die Meldung verursacht hat, habe ich auf die deutsche Notation geändert.

Kann ich mich denn mit der Datumsformel überhaupt auf ein Feld ("Start date") beziehen oder liegt hier das Problem?

Re: Datumsformel im Report

19. April 2017 11:53

ABARA hat geschrieben:Ich hatte auch zuerst die englische Variante drin stehen, da diese aber auch die Meldung verursacht hat, habe ich auf die deutsche Notation geändert.

Bitte nutze trotzdem die englische, wir wollen es schließlich gleich richtig machen, oder? ;-)

Kann ich mich denn mit der Datumsformel überhaupt auf ein Feld ("Start date") beziehen oder liegt hier das Problem?

Doch, das kannst du auf jeden Fall. Problematisch ist es allerdings, wenn dein Feld "Start date" leer ist. Die Fehlermeldung deutet jedoch auf ein anderes Problem hin.

Ist denn dein Feld "Start Date" überhaupt vom Typ "Date"?

Ach übrigens, wenn du nur ganze Tage rechnen willst, dann kannst du auch einfach
Code:
DatEinlad := "Start date" - 28;
rechnen :mrgreen: (vorausgesetzt, "Start Date" und DatEinlad sind beide vom Typ Date)

Re: Datumsformel im Report

19. April 2017 14:15

Super- danke Natalie! Das direkte voneinander abziehen hat funkioniert! Warum das Calcdate nicht geklappt hat, weiß ich zwar nicht (es waren beides Datumsfelder) - aber spielt ja keine Rolle, wenn es so auch klappt!!

Danke'!!

Re: [Gelöst] Datumsformel im Report

19. April 2017 14:42

Du hast ein kleines "t" statt einem großen "T" verwendet... gleicher fehler in Englisch, da muss es auch "D" sein und nicht "d".

Re: [Gelöst] Datumsformel im Report

19. April 2017 15:47

Ah - alles klar! Werde ich bei Gelegenheit mal probieren - klingt logisch!!

Danke!