Berechnung Datum [wieder offen]

20. September 2011 16:36

Guten Abend,
ich hab ein kleines Problem und zwar möchte ich mit einem vorgegeben Datum (befindet sich in einem Tabellenfeld) eine Garantie um 2+ Jahre auf das in dem Feld befindliche Datum berechnen und in ein seperates Feld ausgeben. Wie kann man die Berechnung angehen? Ich ging davon aus das CALCDATE('<+2J>',"Warranty Start Date") vielleicht ginge...

gruß
Ryan
Zuletzt geändert von Ryan am 22. September 2011 09:11, insgesamt 2-mal geändert.

Re: Berechnung Datum

20. September 2011 16:51

Hallo,


Vielleicht hilft dir das weiter:
http://www.navision24.de/befehle/calcdate.html


Code:
NewDate = Calcdate('+2J',ExistingDate);

Gruß
Aydin

Re: Berechnung Datum

20. September 2011 16:57

Ryan hat geschrieben:Ich ging davon aus das CALCDATE('<+2J>',"Warranty Start Date") vielleicht ginge...


Nimm die "<" und ">" weg und es sollte das so tun. Du musst natürlich dafür sorgen, dass dein neues Feld an der richtigen Stelle mit dem berechneten Wert gefüllt wird.

Re: Berechnung Datum

20. September 2011 17:02

Hi,
leider funktioniert das ohne die Klammern auch nicht... bin schon fast der Überzeugung das ich irgendwie eine Formatumwandlung vollziehen muss um mit dem Feldinhalt rechnen zu können. :/

Re: Berechnung Datum

20. September 2011 17:20

Niemals ohne Klammern, dafür mit englischem Inhalt = Dieser Code wird in jeder Clientsprache richtig interpretiert:
Code:
NewDate := CALCDATE('<+2Y>',ExistingDate);


Und wenn "etwas nicht geht", beschreib bitte die Fehlermeldung o.ä.

Re: Berechnung Datum [gelöst]

20. September 2011 17:21

Ok habs gelöst... hatte mich nur an einer Stelle verschrieben -.-
Danke für die Hilfe

Re: Berechnung Datum [wieder offen]

22. September 2011 09:16

Hab jetzt ein neues Problem... meine Grantieberechnung funktioniert leider nur teilweise... :(

Bei mir werden die Debitoren nach "Person" oder "Unternehmen" gefilter... Eine "Person" soll standardmäßig 2 Jahre Garantie erhalten... und wenn das Feld "2+3 Warranty" TRUE ist sind es 5 Jahre... Bei dem Unternehmen immer 1 Jahr... Leider bucht das System für eine "Person" immer wieder nur 1 Jahr. Normalerweise müsste er aber 2 Jahre nehmen. Hab ein Testfeld wo das auch stimmt, bloß für den Serviceartikel wird immer wieder nur 1 Jahre genommen... Ich seh gerade auch nicht mehr durch... Hab ich in meinem Beispiel ein Denkfehler?

Code:
Beispiel:

IF CustomerRec.GET("Bill-to Customer No.") THEN BEGIN
   CASE CustomerRec."Customer Type" OF
     CustomerRec."Customer Type"::Person: BEGIN
       WarrantyDateEnd := CALCDATE('+2J',"Warranty Start Date");
       "Warranty End Date" := WarrantyDateEnd;
     END;
     CustomerRec."Customer Type"::Company : BEGIN
       WarrantyDateEnd := CALCDATE('+1J', "Warranty Start Date");
       "Warranty End Date" := WarrantyDateEnd;
     END;
   END;
   IF "2+3 Warrenty" = TRUE THEN
      CASE CustomerRec."Customer Type" OF
        CustomerRec."Customer Type"::Person: BEGIN
          WarrantyDateEnd := CALCDATE('+5J',"Warranty Start Date");
          "Warranty End Date" := WarrantyDateEnd;
        END;
        CustomerRec."Customer Type"::Company : BEGIN
          WarrantyDateEnd := CALCDATE('+1J', "Warranty Start Date");
          "Warranty End Date" := WarrantyDateEnd;
      END;
   END;
END;


PS: Alle Garantiefälle funktionieren, halt nur der für 2 Jahre nicht...

Gruß

Re: Berechnung Datum [wieder offen]

22. September 2011 09:21

Hast du schon gedebuggt, ob der Code für die Person überhaupt durchlaufen wird (und wenn nein, wo er aussteigt)?

Re: Berechnung Datum [wieder offen]

22. September 2011 09:47

Wenn ich das direkt in der Tabelle teste funktioniert es einwandfrei... Buche bzw. liefere ich den Artikel im RTC, macht er mir da für eine Person nur 1 Jahr und ich werde da nicht ganz schlau drauß :/ Hab im RTC auch ein Testfeld in einer Page drin, da wird das Datum richtig berechnet nur haut der mir beim liefern des Serviceartikel ein Jahr raus... alle anderen Bedingungen funktionieren sonst einwandfrei... selbst das mit dem "2+3 Garantie"

Re: Berechnung Datum [wieder offen]

22. September 2011 09:58

Kann es sein, dass der Wert nach deinem Quelltext irgendwo überklatscht wird?

Re: Berechnung Datum [wieder offen]

22. September 2011 09:59

Hallo Ryan,

wo wird denn der Code ausgeführt? In der Page oder in der `Tabelle?
Veiellciht fehlt ihm ein "Modify", damit der Wert in die Tabelle gelangt.


Funktioniert es im Classic?
Ansonsten müsstest du schon Debuggen.


Gruß
Aydin

Re: Berechnung Datum [wieder offen]

22. September 2011 10:03

Danach such ich gerade, ob da irgendwas überschrieben wird.

Der Code wird direkt in der Tabelle ausgeführt. Ich versuchs mal mit einem Modify. Mal schauen obs hilft :/