


Hello Adobe Fam,
I am new to LiveCycle and was wondering if average calcuation works in LiveiCycle at all? I have a form that I built in Adobe Acrobat that works 100% and calculates dropdowns with no problem. Manager is now requesting to allow comment boxes to expand as more text is added which i can't figure out in Adobe Acrobat but able to do in LiveCycle with no issue, but the actual average calculation is not workinag at all for the 8 dropdowns now but works 100% in Adobe Acrobat?? One thing this code does is excludes N/A from being counted in calcuation if selected.
Below is script that came over from the working PDF I built:
// Average non-N/A values;
var aFieldNames = new Array("Dropdown1", "Dropdown2","Dropdown3","Dropdown4","Dropdown5","Dropdown6","Dropdown7","Dropdown8");
// counter for non-N/A values;
var nCount = 0;
// variable to sum non-N/A values;
var nSum = 0;
// default value for result if no average computed;
event.value = 0;
// process array of field names;
for(i = 0; i < aFieldNames.length; i++) {
if(this.getField(aFieldNames[i]).valueAsString != "N/A") {
// field does not have a value of "N/A";
nCount++; // increment counter
nSum += Number(this.getField(aFieldNames[i]).value); // add value to sum
} // end value not N/A;
} // end loop processing one field;
// compute the average;
if(nCount != 0) {
// non-zero divisor so we can compute the average;
event.value = nSum / nCount;
}
Thanks N advance for any help
Views
Replies
Total Likes
I have the exact same issue. I had to read it twice to make sure I hadn't written it. I need to have a value for each text selected, then average them then have a text attached to the average (overall score). Will someone please look at this again and assist? Thank you!!!
Views
Replies
Total Likes
I would like to know the same thing. Has anybody contacted you. I can get my fields to calculate and average correctly, I just cannot figure out how to get it to ignore the N/A picked fields in the average. HELP
Views
Replies
Total Likes
I actually had to go the route of totally removing N/A and keeping the space blank. So if users want to select N/A, they just have to select the empty space which represents n/a and is also not counted in my final total/average
Views
Replies
Total Likes
Sound like a reasonable solution.
Views
Replies
Total Likes
Here's my solution:
I had to set the binding for the dropdowns to numbers. I didn't know what numbers you were using, so I picked "0" for what "N/A" would get, but you can pick whatever. For the form, I made one dropdown and then copy/pasted it however many times I wanted. (In this case 8 to match your example.) I put the code in the calculate event for the text field I was using to report the average.
var n = 0;
var total = 0;
for (var i=0; i<8; i++){
if (!xfa.resolveNode("dd1["+i+"]").isNull && xfa.resolveNode("dd1["+i+"]").rawValue != 0){
n++;
total += Number(xfa.resolveNode("dd1["+i+"]").rawValue);
}
}
this.rawValue = total/n;
Views
Replies
Total Likes
jasotastic81
I'm getting close with your scripting, this is what I need my drop down has 9 total entries and calculates only 2 drop boxes fields giving the grade in the total box for the two days.
100
95
85
75
60
40
20
0
N/A
I want the 0 to calculate as 0 so that if they get 100 one day and 0 the next the average is 50. and the N/A if picked then it just puts what they got for the 1st day so n/a and 100 returns 100. if both are NA then it it should show NA. Any help would be appreciated.
Dakotajessie
Views
Replies
Total Likes
Alright, then after you've copy/pasted the drop downs, set the data binding values to match the numbers, then use "-1" for N/A. Change the if statement to the following:
if(!xfa.resolveNode("dd1[+i+"]").isNull && xfa.resolveNode("dd1["+i+"]").rawValue >= 0){
*Note: This could probably be streamlined a little since you only have 2 drop downs, but this will work and allow for later expansion if you add more drop downs later.
Views
Replies
Total Likes