Laufzeiten-Berechnung (Dauer)

11. Juni 2015 13:28

Guten Tag zusammen,

ich habe folgendes Problem, gerne möchte ich im Formular eine Berechnung von Datümer erstellen.

Beispiel:

Entität Anfrage: Ziel ist es eine Anfrage zu bearbeiten
Start Datum: 11.06.2015 15:00
End Datum: 13.06.2015 17:30
Gesamt Dauer: 2Tage, 2 Std, 30 Min
dieses Feld muss in meinem Formular erstellt und berechnet werden, damit dieser die Gesamtdauer in Tagen Stunden und Minuten rechnet !!!!!!!!

Meine Frage an euch leutet jetzt, wie kann ich solch eine Berechnung vornehmen?
Brauche ich für die Lösung ein JavaSkript?
Neues Feld erstellen und berechnen? (Dann benötige ich eine Info welcher; Datentyp* Feldtyp* dafür benötigt wird)

Ich bin neu in der Branche und weiß mir leider nicht zu helfen.
Vielen Dank im Voraus schonmal für jede Hilfestellung.

Freundliche Grüße

Re: Laufzeiten-Berechnung (Dauer)

12. Juni 2015 08:25

Hallo Sgruno,
die beiden Datumsfelder (Start Date / End Date) solltest du ja bereits in deiner Anfrage haben, ansonsten diese beiden erstellen.
Für das ZielFeld würde ein TextFeld sich anbieten.
Dein JavaScript könnte so aussehen und sollte auf OnChange der beiden DateTime Felder reagieren, du überprüfst ja ob die Felder noch leer sind oder nicht.
var stdate=Xrm.Page.getAttribute("new_starttime").getValue();
var endate=Xrm.Page.getAttribute("new_finishtime").getValue();
if(stdate==null && endate==null)
{
return false;
}
if(stdate==null)
{
return false;
}
if(endate==null)
{
return false;
}
var st=stdate.getTime();
var ed=endate.getTime();
var sdiff=(ed-st);
var h=(sdiff/60/1000);
var p=parseInt(h);
var tm=p.toString();
MINS_PER_YEAR = 24 * 365 * 60
MINS_PER_MONTH = 24 * 30 * 60
MINS_PER_WEEK = 24 * 7 * 60
MINS_PER_DAY = 24 * 60
minutes = newMinutes;
years = Math.floor(minutes / MINS_PER_YEAR)
minutes = minutes - years * MINS_PER_YEAR
months = Math.floor(minutes / MINS_PER_MONTH)
minutes = minutes - months * MINS_PER_MONTH
weeks = Math.floor(minutes / MINS_PER_WEEK)
minutes = minutes - weeks * MINS_PER_WEEK
days = Math.floor(minutes / MINS_PER_DAY)
minutes = minutes - days * MINS_PER_DAY
var ergebnis = years + " year(s) " + months + " month(s) " + weeks + " week(s) " + days + " day(s) " + minutes + " minute(s)"
Xrm.Page.getAttribute("new_timespent").setValue(ergebnis);

Falls die DateTime Felder erst nach Abschluss deiner Anfrage gefüllt werden, könntest du ein Plugin schreiben.

Grüße
gE3z

Re: Laufzeiten-Berechnung (Dauer)

12. Juni 2015 12:55

Vielen Dank für deine Hilfe.