Technology Blog Posts by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
prajeshdesai
Contributor
88,067
I searched a lot, and do a lots of R&D on this. By this document i want to save your time to write javascript syntax.

Retrieve context structure data


var LV_DATA = xfa.resolveNode("$record.IM_TEST.FIELDNAME").value;

/*
Where,
LV_DATA : variable to hold data
IM_TEST : context structure variable (Import parameter variable)
FIELDNAME : name of field in structure
*/

Retrieve context internal table data


var LV_DATA = xfa.resolveNode("$record.IM_TEST.DATA[" + INDX + "].FIELDNAME").value;

/*
Where,
INDX : index of table record. (start from zero).
LV_DATA : variable to hold data
IM_TEST : context table variable (Import parameter variable)
FIELDNAME : name of field in internal table
*/

OR if you are looping a table


var IMTEST = xfa.resolveNodes("$record.IM_TEST.DATA[*]");
var LV_DATA;

for (var i = 0; i < IMTEST.length; i++) {
LV_DATA = xfa.resolveNode("$record.IM_TEST.DATA[" + i + "].FIELDNAME").value;
}

/*
Where,
INDX : index of table record. (start from zero).
LV_DATA : variable to hold data
IM_TEST : context table variable (Import parameter variable)
FIELDNAME : name of field in internal table
*/

Retrieve control (field) data


Manipulate (reference) fields in script for adobe forms

 

Set dynamic Caption


xfa.resolveNode(this.name + ".caption.value.#text").value = "new caption";

/*
Where,
this.name = name of a field. "use on initialize event
*/

Set dynamic reserve space of Caption


this.caption.reserve = "1in";

//use on initialize event

Hide/Visible dynamically any control


this.presence = "hidden";     //values are case sensitive

//Options: visible, invisible, hidden, inactive

Get/Set form fields value


this.rawValue = "new value";     //SET

var value = this.rawValue; //GET

Get current index


var INDX = this.index;

var PRNTINDX = this.parent.index; //to get parent container index

var PRNNTINDX = this.parent.parent.index; //to get parent container's parent index

Useful Arithmetic Operators


var y = 5;

x = ++y; //x = 6 and y = 6

x = y++; //x = 5 and y = 6

x = y % 2; //division remainder x = 1

Set floating points of field


this.rawValue = (this.rawValue).toFixed(3);

//Note: 3 is total no. of fraction point to display using ceiling operation

Useful Math functions


this.rawValue = Math.abs(this.rawValue);          //to positive value (-1.1 to 1.1)

this.rawValue = Math.ceil(this.rawValue); //to rounded upwards to the nearest integer (1.1 to 2)

this.rawValue = Math.floor(this.rawValue); //to rounded downwards to the nearest integer (1.1 to 1)

this.rawValue = Math.round(this.rawValue); //to the nearest integer (1.1 to 1 and 1.5 to 2)

Use Regular Expression
var reg = new RegExp(/[^0-9]/);

if (reg.test("Abcd")){
//expression passed
}

Set focus on filed


xfa.host.setFocus(this);

Populate Alert Message Box


xfa.host.messageBox("Helloo");

Set ToolTip of control


this.assist.toolTip.value = "toolTip text";

Set height of Sub-Form


var b = parseFloat(sfrmName.h) + 5;    
if (b < 0) {
b = 0;
}
sfrmName.h = b + "mm";

 

Date and Time format handling


if you are using text field, write use below java script
var curDate = new Date();
var strDate = util.printd("mm/dd/yyyy HH:MM:ss", curDate);

 

if you are using DateTime adobe field you can directly give pattern to field.

Select DateTime Filed --> Go to property window --> click on Pattern button --> Select accordingly

Note:































































mmmm Month Name HH 24 hour time, leading 0
mmm Abbreviated Month Name H 24 hour time
mm Numeric Month, leading 0 hh 12 hour time, leading 0
m Numeric Month h 12 hour time
dddd Day of Week Name MM Minutes, leading 0
ddd Abbreviated Day Name M Minutes
dd Day of Month, leading 0 ss Seconds, leading 0
d Day of Month s Seconds
yyyy Year, 4 digits tt am/pm indication
yy Year, 2 digits t am/pm, single character(a/p)

Play with Uppercase and Lowercase


this.rawValue = this.rawValue.toUpperCase();     "on initialize event convert to uppercase

this.rawValue = this.rawValue.toLowerCase(); "on initialize event convert to lowercase

//Using Interactive Scenario (Automatic live case conversion)

xfa.event.change = xfa.event.change.toUpperCase(); "on change event convert to uppercase

xfa.event.change = xfa.event.change.toLowerCase(); "on change event convert to lowercase

Boolean function


var check = Boolean(10 > 9);     "returns True
var check = (10 > 9); "returns True
var check = 10 > 9; "returns True

Font customization (control/caption)
this.font.typeface = "Courier";        //font family (font name)
this.font.size = "30pt"; //font size
this.font.weight = "bold"; //font weight (bold | normal)
this.font.posture = "italic"; //font style (italic | normal)
this.fontColor = "0,0,0"; //font color (RR,GG,BB)
this.fillColor = "153,153,153"; //control background color (RR,GG,BB)
this.font.baselineShift = "10px"; //shift font up/down (10/-10)

//for caption you can you below,
this.caption.font.fill.color.value = "255,255,255";

//most other properties are same, ex this.caption.font.*

 

Cancel Printing


data::prePrint - (JavaScript, client)
xfa.event.cancelAction = 1;

HTML Rich Text Rendering


var envelope = "<?xml version='1.0' encoding='UTF-8'?>" +
"<exData contentType='text/html' xmlns='http://www.xfa.org/schema/xfa-template/2.8/'" +
"><body xmlns='http://www.w3.org/1999/xhtml' xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/' " +
"xfa:APIVersion='Acroform:2.7.0.0' xfa:spec='2.1'>" +
"<p>"+ this.rawValue +"</p></body></exData>";

this.value.exData.loadXML(envelope,1,1);

//Note: use on docClose event and load pdf dynamically.

Loop through all controls (fields) in adobe forms


Loop through all controls (fields) in adobe forms

A lot more to explore, will share with you soon.

Best Regards.

Prajesh Desai
22 Comments