Ich beschäftige mich mit dynamischen Formularen erst seit kurzem.
Dieses Forum ist mir bislang eine sehr große Hilfe bei meinem Lernprozess gewesen.
!! Vielen Dank, dass es euch gibt !!!
Momentan stehe ich jedoch vor einem Problem und komme nicht weiter. Bevor ich weitere kostbare Zeit vergeude möchte ich euch um eure Hilfe bitten.
Ich versuche das Skript einer Vorlage von "Walde" zur Berechnung einer Zeitdifferenz an meine Bedürfnisse anzufassen.
Es will jedoch nicht funktionieren. Irgendwo ist der Wurm drin.
Vielleicht könnt Ihr mir helfen?
Die Berechnung der Arbeitszeit (Worktime=Departure-Arrival) funktioniert.
Die Berechnung der Reisezeit (Traveltime=Arrival-Start+End-Departure) läuft nicht.
Meine Zweite Frage ist: kann man die Berechnung automatisch ausführen lassen ohne die Buttons?
Würde mich über eure Hilfe freuen.
Hier das Skript:
Code: Alles auswählen
if(StartT.rawValue != null & ArrivalT.rawValue != null & DepartureT.rawValue != null & ArrivalT.rawValue != null){
var sTimeStart = StartT.formattedValue.split(":");
var sTimeEnde = EndT.formattedValue.split(":");
var sTimeArrival = ArrivalT.formattedValue.split(":");
var sTimeDeparture = DepartureT.formattedValue.split(":");
var nTimeStart = (sTimeStart[0] * 3600) + (sTimeStart[1] * 60);
var nTimeEnde = (sTimeEnde[0] * 3600) + (sTimeEnde[1] * 60);
var nTimeDeparture = (sTimeDeparture[0] * 3600) + (sTimeDeparture[1] * 60);
var nTimeArrival = (sTimeArrival[0] * 3600) + (sTimeArrival[1] * 60); var nPausen = 0;
var nTimeDifferenz = 0;
if(Break.rawValue != null){
nPausen = Break.rawValue * 60;
}
if(nTimeEnde > nTimeStart){
if((nTimeEnde - nTimeStart - nPausen) > 0 ){
nTimeDifferenz = nTimeArrival - nTimeStart + nTimeEnd - nTimeDeparture;
var nStd = Math.floor(nTimeDifferenz / 3600);
var nStdRest = nTimeDifferenz - (nStd * 3600);
var nMinuten = Math.floor(nStdRest / 60);
var nMinutenHunderter = Math.round(nMinuten / 60 * 100);
var nViertelTeiler = Math.floor(nStdRest / 60 / 15);
var nViertel = nViertelTeiler * 25;
TravelT.rawValue = nStd + "," + nMinutenHunderter + " h";
}
else if((nTimeEnde - nTimeStart - nPausen) == 0 ){
app.alert("Abzüglich Ihrer Pause beträgt Ihre Arbeitsleistung 0 Minuten!");
}
else{
app.alert("Sie haben länger pausiert als gearbeitet!");
}
}
else{
app.alert("Ende muss grösser sein als Anfang!");
}
}