I have made a form in which there is a table of 30 rows with INTIME and OUTTIME(2 sets in single row) with a cell in which it calculates the difference of time between INTIME and OUTTIME.....everything is working fine except for whenever there is 08 or 09 in minutes then either there is no calculation or it outputs the same minutes without calculations . see the screenshot.. : when 08 or 09 is in outtime it shows either no calculation or wrong calculation and when 08 or 09 is in intime it show the minutes of the outtime.
Attached is the link to the original file... problem is when there is 08 or 09 in minutes apart from that script is working fine.. script is in variable and called from exit event of outtime.
https://www.dropbox.com/s/7vaz0cjb12uef4e/Time%20Calculation.pdf?dl=0
Solved! Go to Solution.
Views
Replies
Total Likes
ok, this is going to be the last one now - I have a dayjob
Adapt this draft approach to your solution.
To sum up I did a quick hack by creating a further function in the script object and call it in the exit event of the out-times.
function sumResults(rootSomResults, resultFieldName)
{
var results = xfa.resolveNodes(rootSomResults+"[*]"+"."+resultFieldName);
var sumMinutes = 0;
for (i=0; i < results.length; i++) {
var resultTime = results.item(i).rawValue;
if (resultTime != null) {
var timeFields = resultTime.split(":");
sumMinutes = sumMinutes + (Number(timeFields[0])*60) + Number(timeFields[1]);
}
}
var hours = Math.floor(sumMinutes/60);
var minutes = sumMinutes%60
return String(hours)+":"+String(minutes);
}
Add a line to the exit events:
TextField1.rawValue = calcTimes.sumResults("Table1.Row","result")
Where p1 is the row SOM and p2 is the name of your result field.
TextField1 is the name of an additional text field where the result is to go
Views
Replies
Total Likes
Views
Replies
Total Likes
ok, this is going to be the last one now - I have a dayjob
Adapt this draft approach to your solution.
To sum up I did a quick hack by creating a further function in the script object and call it in the exit event of the out-times.
function sumResults(rootSomResults, resultFieldName)
{
var results = xfa.resolveNodes(rootSomResults+"[*]"+"."+resultFieldName);
var sumMinutes = 0;
for (i=0; i < results.length; i++) {
var resultTime = results.item(i).rawValue;
if (resultTime != null) {
var timeFields = resultTime.split(":");
sumMinutes = sumMinutes + (Number(timeFields[0])*60) + Number(timeFields[1]);
}
}
var hours = Math.floor(sumMinutes/60);
var minutes = sumMinutes%60
return String(hours)+":"+String(minutes);
}
Add a line to the exit events:
TextField1.rawValue = calcTimes.sumResults("Table1.Row","result")
Where p1 is the row SOM and p2 is the name of your result field.
TextField1 is the name of an additional text field where the result is to go
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Likes
Replies