You are on page 1of 6

Community

Ask a Question Write a Blog Post

Prajesh Desai
May 12, 2016 | 3 minute read

Adobe form using javascirpt


 18  33  36,512

Follow 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.

 Like Retrieve context structure data

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


 RSS Feed
/*
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 + "].

/*
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 + "].FI
}

/*
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 ca

/*
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 ind

var PRNNTINDX = this.parent.parent.index; //to get parent conta

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 o

Useful Math functions

this.rawValue = Math.abs(this.rawValue); //to positive va

this.rawValue = Math.ceil(this.rawValue); //to rounded upw

this.rawValue = Math.floor(this.rawValue); //to rounded dow

this.rawValue = Math.round(this.rawValue); //to the nearest i

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 H 24 hour time


Name

mm Numeric Month, leading hh 12 hour time, leading 0


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 eve

this.rawValue = this.rawValue.toLowerCase(); "on initialize eve

//Using Interactive Scenario (Automatic live case conversion)

xfa.event.change = xfa.event.change.toUpperCase(); "on change e

xfa.event.change = xfa.event.change.toLowerCase(); "on change e

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 | no
this.font.posture = "italic"; //font style (italic |
this.fontColor = "0,0,0"; //font color (RR,GG,BB)
this.fillColor = "153,153,153"; //control background color
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
"><body xmlns='http://www.w3.org/1999/xhtml' xmlns:xfa='http://ww
"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

Alert Moderator

Assigned Tags

SAP Interactive Forms by Adobe

adobe script

adobeformprocessing

caption

javascript

prajeshdesai

sap interactive forms by adobe

Similar Blog Posts 


Merge Multiple Adobe Forms into 1 PDF Content

You might also like