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