Tuesday, July 12, 2011

Adobe form scripting

In hierarchy view, the tree structure looks like this
data
|____body|
.........|_Tabe1|
................|_Footerrow[1]|
..............................|_leaf variables

----- data.Body.Table1.FooterRow[1].V_VAT_LOC_CUR::ready:layout - (JavaScript, client) -------------
// vat in local curr - design view
var zero = 0.00;
if (this.rawValue > zero)
{
    this.presence = "visible";
}

----- data.Head.Header.PagewiseTotal.empty::ready:layout - (JavaScript, client) --------------------
// prev. balance heading
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == 1)
{
}
else
{
    this.presence = "visible";
}
----- data.Head.Header.PagewiseTotal.TextField1::ready:layout - (JavaScript, client) ---------------
// prev balance currency field
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == 1)
{
}
else
{
    this.presence = "visible";
}
----- data.Head.Header.PagewiseTotal.CarryOver::ready:layout - (JavaScript, client) ----------------
//prev balance text field
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == 1)
{}
else
{
    var sum = 0;
    while (currpage > 1)
    {
        var total = 0;
        currpage = currpage-1;
        var fields = 0;
        fields = xfa.layout.pageContent(currpage-1, "field", 0);
        for ( i=0; i<= fields.length-1; i++ )
        {
            if (fields.item(i).name == "TOTAL")
            {
                total = total + fields.item(i).rawValue;
            }
        }
        sum = sum + total;
    }
    this.rawValue = sum;

}

----- data.Head.Header.PagewiseTotal.TotalExVAT::ready:layout - (JavaScript, client) ---------------
// total ex. vat text field
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == totalpage)
{  
//  this.presence = "visible";
    var total = 0.
// get the number of lines in the table and then loop through all the table lines searching for the field and add up
    var num = xfa.resolveNodes("data.Body.Table1.Row1[*]").length;
    for ( var i=0; i<num; i++ )
    {
        total = total + xfa.resolveNode("data.Body.Table1.Row1["+i+"].AMOUNT").rawValue;
    }
    this.rawValue = total;
}
else
{
// get the page content and check for your field and add the value
    var fields = xfa.layout.pageContent(xfa.layout.page(this)-1, "field", 0);
    var total = 0;
    for (var i=0; i <= fields.length-1; i++)
    {
        if (fields.item(i).name == "AMOUNT")
        {
            total = total + fields.item(i).rawValue;
        }
    }
    this.rawValue = total;
}

----- data.Head.Header.PagewiseTotal.VAT::ready:layout - (JavaScript, client) ----------------------
// vat
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == totalpage)
{  
    var sum = 0, amount, total;
// get the number of lines in the table and loop through all the table lines
// fetch Total and Amount. VAT = Total - Amount
    var num = xfa.resolveNodes("data.Body.Table1.Row1[*]").length;
    for ( var i=0; i<num; i++ )
    {
        total = xfa.resolveNode("data.Body.Table1.Row1["+i+"].TOTAL").rawValue;
        amount = xfa.resolveNode("data.Body.Table1.Row1["+i+"].AMOUNT").rawValue;
        sum = sum + (total - amount);
    }
    this.rawValue = sum;
}
else
{
// get the page content and check for your field and add the value
    var fields = xfa.layout.pageContent(xfa.layout.page(this)-1, "field", 0);
    var total = 0;
    for (var i=0; i <= fields.length-1; i++)
    {
        if (fields.item(i).name == "TOTAL")
        {
            total = total + fields.item(i).rawValue;
        }
    }
    var fields1 = xfa.layout.pageContent(xfa.layout.page(this)-1, "field", 0);
    var total1 = 0;
    for (var i=0; i <= fields1.length-1; i++)
    {
        if (fields1.item(i).name == "AMOUNT")
        {
            total1 = total1 + fields1.item(i).rawValue;
        }
    }
    this.rawValue = total - total1;
}

----- data.Head.Header.PagewiseTotal.Total::ready:layout - (JavaScript, client) --------------------
// total field
var totalpage = xfa.layout.pageCount();
var currpage = xfa.layout.page(this);

if (currpage == 1)
{  
    var pagefields=0;
    var pagefields = xfa.layout.pageContent(currpage-1, "field", 0);
    var pagetotal = 0;
    for (var i=0; i <= pagefields.length-1; i++)
    {
        if (pagefields.item(i).name == "TOTAL")
        {
            pagetotal = pagetotal + pagefields.item(i).rawValue;
        }
    }
    this.rawValue = pagetotal;
}
else
{
    var sum = 0;
    while (currpage>0)
    {
        var total = 0;
        var fields = 0;
        fields = xfa.layout.pageContent(currpage-1, "field", 0);
        for ( i=0; i<= fields.length-1; i++ )
        {
            if (fields.item(i).name == "TOTAL")
            {
                total = total + fields.item(i).rawValue;
            }
        }
   
        sum = sum + total;
        currpage = currpage-1;
    }
    this.rawValue = sum;

}





No comments:

Post a Comment