subtotal table that has user defined categories
i have table need subtotal user defined values. entries can format - although of form a12345(e.g.) - , there can multiple entries of same value. came javascript builds array, filters unique values, compares 2 , subtotals results in second table. script triggers on exiting tmark , estimated volume fields of form.
//function find unique values in given array
var unique = function(origarray) {
var newarray = [],
origlen = origarray.length,
found,
x, y;
( x = 0; x < origlen; x++ ) {
found = undefined;
( y = 0; y < newarray.length; y++ ) {
if ( origarray[x] === newarray[y] ) {
found = true;
break;
}
}
if ( !found) newarray.push( origarray[x] );
}
return newarray;
}
//use find unique function set values original array , same array filtered unique values
var tmarkarray = []
var uniqarray = [];
for (var i=0; < 4; i++) {
var mark = xfa.resolvenode("form1.page1.table.row[" + + "].tmark").rawvalue;
uniqarray.push(mark);
tmarkarray.push(mark);
}
uniqarray = unique(uniqarray);
//get array of estimated volume values first table
var namount = []
for (var i=0; < 4; i++) {
var estvol = xfa.resolvenode("form1.page1.table.row[" + + "].estvol").rawvalue;
namount.push(estvol);
}
//clear values in second table allow recalculation
for (var i=0; i<tmarkarray.length; i++)
{
xfa.resolvenode("form1.page1.table1.row[" + + "].cell1").rawvalue = null;
xfa.resolvenode("form1.page1.table1.row[" + + "].cell2").rawvalue = null;
xfa.resolvenode("form1.page1.table1.row[" + + "].cell3").rawvalue = null;
}
//loop through first table , fill second table subtotalled amounts.
for (var i=0; i<tmarkarray.length; i++)
{
for (var a=0; < 4; a++) {
if (tmarkarray[i] == uniqarray[a]) {
if (xfa.resolvenode("form1.page1.table1.row["+ +"].cell3").rawvalue != null){
xfa.resolvenode("form1.page1.table1.row["+ +"].cell1").rawvalue = tmarkarray[i];
xfa.resolvenode("form1.page1.table1.row["+ +"].cell3").rawvalue = xfa.resolvenode("form1.page1.table1.row["+ +"].cell3").rawvalue + namount[i];
}
else {
xfa.resolvenode("form1.page1.table1.row["+ +"].cell1").rawvalue = tmarkarray[i];
xfa.resolvenode("form1.page1.table1.row["+ +"].cell3").rawvalue = namount[i];
}
}
}
}
the script works, don't think elegant , works on static table. able use on dynamic tables.
More discussions in LiveCycle Designer
adobe
Comments
Post a Comment