none
Datumsfelder berechnen?! RRS feed

  • Frage

  • Hallo miteinander,

    ich würde gerne bei unserem CRM eine Datumsberechnung erstellen, bin aber leider bislang zu noch keinem Ergebnis gekommen :-/

    Wir haben zwei Datumsfelder -> Vertrag Anfang und Vertrag Ende.

    Diese Datumsfelder sollen voneinander abgezogen werden damit die Dauer des Vertrags in einem weiteren Feld angezeigt wird.
    Mein Problem dabei ist nun die Berechnung... ich habe mit Javascript versucht bin aber zu keinem Ergebnis gekommen.
    Ich weiß einfach nicht wie ich die Berechnung anstellen soll, da er bei der Ausgabe der Datumsfelder immer ein Format z.B. wie Friday March 3, 12:00:00 anzeigt und ich nicht weiß wie ich die verarbeitung weiter bewerkstelligen soll :-(

    Kann mir da einer einen kleinen Tipp geben?
    Montag, 25. Mai 2009 10:33

Antworten

  • Hallo Patrickus!

    Vielleicht so:

    var heute = new Date();
    heute.setHours (10);
    heute.setMinutes(00);

    //--> Das wäre jetzt heute, 10 Uhr

    crmForm.all.your_datefield.DataValue = heute;

    ?

    Viele Grüße,

    Gulliver


    sgfgfs
    Dienstag, 26. Mai 2009 07:12
  • Hallo,

    mit folgendem Befehl belegstdu das FEld mit dem aktuellen Tagesdatum:
    crmForm.all.<FELDNAME>.DataValue = new Date();

     


    Viele Grüße

    Michael Sulz
    axcentro GmbH
    Dienstag, 26. Mai 2009 07:28
    Moderator
  • Hallo Patrickus,

    mit der setMilliseconds-Methode kannst du daraus wieder ein Datum machen, bei dem du STunden, Minuten etc. auslesen kannst:
    http://msdn.microsoft.com/en-us/library/a92fx7ha(VS.85).aspx
    "If the value of numMilli is greater than 999 or is a negative number, the stored number of seconds (and minutes, hours, and so forth if necessary) is incremented an appropriate amount."

    Siehe auch die Dokumentation zum Date-Objekt:
    http://msdn.microsoft.com/en-us/library/cd9w2te4(VS.85).aspx

    Viele Grüße,
    Jürgen
    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Freitag, 29. Mai 2009 10:35
    Moderator

Alle Antworten

  • Hallo,

    das ist eigentlich ganz einfach. Du kannst direkt die beiden Datumswerte voneinander abziehen, z.B. so:

    crmForm.all.new_VertragDauer.DataValue = crmForm.all.VertragEnde.DataValue - crmForm.all.VertragAnfang.DataValue;


    Viele Grüße

    Michael Sulz
    axcentro GmbH
    Montag, 25. Mai 2009 10:54
    Moderator
  • Hallo,

    danke erstmal für die prompte Antwort :)

    Das hatte ich bereits getestet in der Art zumindest und ich bekomme dann halt z.B. 23.04.2009 - 20.01.2009 einen Wert von 8031600000 heraus.... ?!?

    Und da kann ich mir bislang noch kein Reim raus machen :-/
    Montag, 25. Mai 2009 11:53
  • Hallo,

    das Ergebniss ist in Millisekunden, du must es nur entsprechend Teilen, um den richtigen Wert heraus zu bekommen.

     

     


    Viele Grüße

    Michael Sulz
    axcentro GmbH
    Montag, 25. Mai 2009 12:26
    Moderator
  • :-) :-) :-)

    Sorry.... *g*

    und vielen vielen Dank für die Hilfe nun läuft es auch so wie es soll :)
    Montag, 25. Mai 2009 13:03
  • Eine Frage hätte ich dann doch noch :-)
    Undzwar würde ich somit auch gerne noch die "aktuelle Dauer" berechnen... also wielange es noch! läuft und nicht die Gesamtdauer...

    Also die Berechnung wäre folgende -> Ende_Vertrag - JETZT...

    das Problem was ich habe... wie bekomme ich den aktuellen Datumswert?!? Also nicht nur einzelnd Stunden mit GetHours etc. sondern eine kompletten Datetime?? Sonst kann ich das ja nicht voneinander abziehen... denn das Formularfeld "Ende_Vertrag" wird ja im Datetime wie oben angegeben gespeichert...


    Viele Grüße und Danke!
    Dienstag, 26. Mai 2009 06:59
  • Hallo Patrickus!

    Vielleicht so:

    var heute = new Date();
    heute.setHours (10);
    heute.setMinutes(00);

    //--> Das wäre jetzt heute, 10 Uhr

    crmForm.all.your_datefield.DataValue = heute;

    ?

    Viele Grüße,

    Gulliver


    sgfgfs
    Dienstag, 26. Mai 2009 07:12
  • Hallo,

    mit folgendem Befehl belegstdu das FEld mit dem aktuellen Tagesdatum:
    crmForm.all.<FELDNAME>.DataValue = new Date();

     


    Viele Grüße

    Michael Sulz
    axcentro GmbH
    Dienstag, 26. Mai 2009 07:28
    Moderator
  • Hallo Patrickus,

    mit der setMilliseconds-Methode kannst du daraus wieder ein Datum machen, bei dem du STunden, Minuten etc. auslesen kannst:
    http://msdn.microsoft.com/en-us/library/a92fx7ha(VS.85).aspx
    "If the value of numMilli is greater than 999 or is a negative number, the stored number of seconds (and minutes, hours, and so forth if necessary) is incremented an appropriate amount."

    Siehe auch die Dokumentation zum Date-Objekt:
    http://msdn.microsoft.com/en-us/library/cd9w2te4(VS.85).aspx

    Viele Grüße,
    Jürgen
    Jürgen Beck

    Dipl. Kfm./Wirtschaftsinformatik
    MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
    Microsoft Certified Business Management Solutions Professional
    Microsoft Certified CRM Developer
    Microsoft Certified Trainer

    ComBeck IT Services & Business Solutions
    Microsoft Gold Certified Partner
    Microsoft Small Business Specialist

    Developing & Supporting Business Applications from small business to big enterprises covering scores of sectors

    http://www.combeck.de
    Freitag, 29. Mai 2009 10:35
    Moderator