Great!! thank you very much radzmar
here is the xfa form version : https://adobe.ly/2rIPvIE
I adapted your code to calculate the totals. It works for the days (total-lun, ...) but not for the total of the week (Total.TimeHHMM). Could you help me?
total-lun,... it's ok But now, l'am eoo could you also edit the fields Total.TimeHHMM,
Total-lun : it's ok
var cResult = "",
oStart = xfa.resolveNode("TimeHHMM\\.0"),
oEnd = xfa.resolveNode("TimeHHMM\\.1"),
Time2Num = function (cFormat, cTime) {
if (cTime === "") {
return "";
} else {
var oTime = util.scand("mm/dd/yyyy " + cFormat, "01/01/1970 " + cTime),
cTZOffset = (oTime.getTimezoneOffset() * 1000 * 60),
cTime = oTime.valueOf() - cTZOffset;
return Math.round(cTime / 1000, 10);
}
},
iStart, iEnd, iDiff, iHours, iMins;
if (!oStart.isNull && !oEnd.isNull) {
iStart = Time2Num("hh:mm", oStart.formattedValue);
iEnd = Time2Num("hh:mm", oEnd.formattedValue);
iDiff = Math.round((iEnd + iStart) / 60);
iHours = Math.floor(iDiff / 60);
iMins = util.printf("%,302.0f", ((iDiff / 60) - iHours ) * 60);
cResult = iHours.toString().concat(":").concat(iMins.toString());
}
this.rawValue = cResult;
Total.TimeHHMM
var cResult = "",
olun = xfa.resolveNode("Total-lun"),
omar = xfa.resolveNode("Total-mar"),
omer = xfa.resolveNode("Total-lun"),
ojeu = xfa.resolveNode("Total-mar"),
oven = xfa.resolveNode("Total-lun"),
Time2Num = function (cFormat, cTime) {
if (cTime === "") {
return "";
} else {
app.alert(cTime);
var oTime = util.scand("mm/dd/yyyy " + cFormat, "01/01/1970 " + cTime),
cTZOffset = (oTime.getTimezoneOffset() * 1000 * 60),
cTime = oTime.valueOf() - cTZOffset;
return Math.round(cTime / 1000, 10);
}
},
iStart, iEnd, iDiff, iHours, iMins;
if (!olun.isNull && !omar.isNull && !omer.isNull && !ojeu.isNull && !oven.isNull) {
ilun = Time2Num("hh:mm", olun.formattedValue);
imar = Time2Num("hh:mm", omar.formattedValue);
imer = Time2Num("hh:mm", omer.formattedValue);
ijeu = Time2Num("hh:mm", ojeu.formattedValue);
iven = Time2Num("hh:mm", oven.formattedValue);
iDiff = Math.round((ilun + imar + imer + ijeu + iven) / 60);
iHours = Math.floor(iDiff / 60);
iMins = util.printf("%,302.0f", ((iDiff / 60) - iHours ) * 60);
cResult = iHours.toString().concat(":").concat(iMins.toString());
}
this.rawValue = cResult;