JavaSkript für zeitberechnung
Verfasst: 26.02.2018, 15:13
Hallo,
ich möchte in einem Bericht Zeiten zusammen rechnen lassen.
Das ist auch möglich mit folgendem Befehl:
var cStundenRow1 = this.getField("StundenRow1").value;
var cStundenRow2 = this.getField("StundenRow2").value;
if ((cStundenRow1 != "-1") && (cStundenRow2 != "-1"))
{
var nStundenRow1=0,
nStundenRow2=0;
var aStundenRow1 = cStundenRow1.split(":");
nStundenRow1 = Number(aStundenRow1[0]) + Number(aStundenRow1[1])/60;
var aStundenRow2 = cStundenRow2.split(":");
nStundenRow2 = Number(aStundenRow2[0]) + Number(aStundenRow2[1])/60;
var nSumme1 = nStundenRow2 + nStundenRow1;
var nHours = Math.floor(nSumme1 );
var nMinutes = Math.floor((nSumme1 - nHours)*60 + 0.5);
event.value = util.printf("%02d:%02d",nHours, nMinutes);
}
else
event.value = "";
Bevor die Berechnung allerdings stattfindet, muss ich entweder aus zwei Dropdown-Menüs, die Uhrzeiten auswählen und zusammen rechnen lassen, oder ich trage händisch die Uhrzeit in der Spalte StundenRow1 ein.
Dies wurde mit einem Skript realiesiert, welches jetzt nicht mehr funktioniert.
Skript das nicht mehr funktioniert:
var cStartTime = this.getField("VonRow1").value;
var cEndTime = this.getField("BisRow1").value;
var cStunden = this.getField("StundenRow1").value;
if ((cStartTime < "1") && (cEndTime < "1"))
{
cStunden == "StundenRow1";
}
else if ((cStartTime > "0") && (cEndTime > "0"))
{
var nStartTime=0, nEndTime=0;
var aStartTime = cStartTime.split(":");
nStartTime = Number(aStartTime[0]) + Number(aStartTime[1])/60;
var aEndTime = cEndTime.split(":");
nEndTime = Number(aEndTime[0]) + Number(aEndTime[1])/60;
var nTimeDiff = nEndTime - nStartTime;
var nHours = Math.floor(nTimeDiff );
var nMinutes = Math.floor((nTimeDiff - nHours)*60 + 0.5);
event.value = util.printf("%02d:%02d",nHours, nMinutes);
}
else
{
event.value = "";
}
Hat jemand eine Idee wie ich das realisieren kann, die Zeit über die DropDown-Listen ausrechnen und die Zeit händisch in das Feld eintragen zu lassen?
Über Antworten und Hilfen wäre ich dankbar.
ich möchte in einem Bericht Zeiten zusammen rechnen lassen.
Das ist auch möglich mit folgendem Befehl:
var cStundenRow1 = this.getField("StundenRow1").value;
var cStundenRow2 = this.getField("StundenRow2").value;
if ((cStundenRow1 != "-1") && (cStundenRow2 != "-1"))
{
var nStundenRow1=0,
nStundenRow2=0;
var aStundenRow1 = cStundenRow1.split(":");
nStundenRow1 = Number(aStundenRow1[0]) + Number(aStundenRow1[1])/60;
var aStundenRow2 = cStundenRow2.split(":");
nStundenRow2 = Number(aStundenRow2[0]) + Number(aStundenRow2[1])/60;
var nSumme1 = nStundenRow2 + nStundenRow1;
var nHours = Math.floor(nSumme1 );
var nMinutes = Math.floor((nSumme1 - nHours)*60 + 0.5);
event.value = util.printf("%02d:%02d",nHours, nMinutes);
}
else
event.value = "";
Bevor die Berechnung allerdings stattfindet, muss ich entweder aus zwei Dropdown-Menüs, die Uhrzeiten auswählen und zusammen rechnen lassen, oder ich trage händisch die Uhrzeit in der Spalte StundenRow1 ein.
Dies wurde mit einem Skript realiesiert, welches jetzt nicht mehr funktioniert.
Skript das nicht mehr funktioniert:
var cStartTime = this.getField("VonRow1").value;
var cEndTime = this.getField("BisRow1").value;
var cStunden = this.getField("StundenRow1").value;
if ((cStartTime < "1") && (cEndTime < "1"))
{
cStunden == "StundenRow1";
}
else if ((cStartTime > "0") && (cEndTime > "0"))
{
var nStartTime=0, nEndTime=0;
var aStartTime = cStartTime.split(":");
nStartTime = Number(aStartTime[0]) + Number(aStartTime[1])/60;
var aEndTime = cEndTime.split(":");
nEndTime = Number(aEndTime[0]) + Number(aEndTime[1])/60;
var nTimeDiff = nEndTime - nStartTime;
var nHours = Math.floor(nTimeDiff );
var nMinutes = Math.floor((nTimeDiff - nHours)*60 + 0.5);
event.value = util.printf("%02d:%02d",nHours, nMinutes);
}
else
{
event.value = "";
}
Hat jemand eine Idee wie ich das realisieren kann, die Zeit über die DropDown-Listen ausrechnen und die Zeit händisch in das Feld eintragen zu lassen?
Über Antworten und Hilfen wäre ich dankbar.