Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
prajeshdesai
Contributor
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
21 Comments
Labels in this area