WTF Solution

Convert Amount in Word using JavaScript in Adobe Form in SAP 2025

In the SAP Invoice forms, we are required to display the amount in both number and word formats. So, we will see how to convert amount in word format using JavaScript code.

Note: The form language is "JavaScript", and the event is a calculation.
Prerequisite: In the code part, please properly connect the "Total amount field", "Currency field", and the "Final Output Field".

Convert Amount in Word - Code is Here

var one_to_twenty=["One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirten","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"];
var twenty_to_ninety= ["Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"];
var result="";

var str1 = Form.bdyPage.item_table.sub1.sub2.grandTotal.formattedValue; // Total amount field
// var str1 = "13341000.00";
var resultwords = getIt(inputStr);
var resultwords1 = getIt(inputStr1);

if (resultwords1.length == 0) {
resultwords1= "Zero";
}

var CurrencyVal = Form.bdyPage.item_table.sub1.sub2.currencyCode.rawValue; // Currency field
var Paisaval;
var Rupeesval;

if (CurrencyVal == "INR") {
Paisaval="Paisa";
Rupeesval = "Rupees";
}
else if (CurrencyVal =="USD") {
Rupeesval = "Dollar"
Paisaval = "Cents";
}
else if(CurrencyVal=="AED") {
Paisaval="Fils";
}
else if(CurrencyVal=="EUR") {
Paisaval ="Cents";
}

AmountInWords.rawValue = CurrencyVal + " " + resultwords+" " + Rupeesval + " and " + resultwords1 + " "+Paisaval+" Only"; // Output Format

function getIt(_ints1){
   if(_ints1.length>7){//for crores
            var _ints2=_ints1.substring(_ints1.length-7,_ints1.length);
            _ints1=_ints1.substring(0,_ints1.length-7);
            result=getIt(_ints1);
            if(result!="")
            result=result+" Crore ";
            result=result+getIt(_ints2);
   }//for crores

else if(_ints1.length>5) { //for lakhs
            var _ints2=_ints1.substring(_ints1.length-5,_ints1.length);
            _ints1=_ints1.substring(0,_ints1.length-5);
            if(_ints1.length>2)
            _ints1=_ints1.substring(_ints1.length-2,_ints1.length);
            result=getIt(_ints1);
            if(result!="")
            result=result+" Lakh ";
            result=result+getIt(_ints2);
   }//for lakhs

else if(_ints1.length>3) {//for thousands
            var _ints2=_ints1.substring(_ints1.length-3,_ints1.length);
            _ints1=_ints1.substring(0,_ints1.length-3);
            if(_ints1.length>2)
            _ints1=_ints1.substring(_ints1.length-2,_ints1.length);
            result=getIt(_ints1);
            if(result!="")
            result=result+" Thousand ";
            result=result+getIt(_ints2);
   }//for thousands

else if(_ints1.length>2) {//for hundred
            var _ints2=_ints1.substring(_ints1.length-2,_ints1.length);
            _ints1=_ints1.substring(0,_ints1.length-2);
            if(_ints1.length>1)
            _ints1=_ints1.substring(_ints1.length-1,_ints1.length);
            result=getIt(_ints1);
            if(result!="")
            result=result+" Hundred ";
            var result1=getIt(_ints2);
            if(result1!="")
            result=result+" "+result1;
   }//for hundred

else if(_ints1.length<=2) {//for others
            if((_ints1>=1)&&(_ints1<=19)) {
                return one_to_twenty[_ints1-1];
            }
            else if((_ints1==20)||(_ints1==30)||(_ints1==40)||(_ints1==50)||(_ints1==60)||(_ints1==70)||(_ints1==80)||(_ints1==90)){
                var t=_ints1/10;
                return twenty_to_ninety[t-2];
            }
            else if(_ints1==0)
                return "";
            else{
                var t=_ints1.charAt(0);
                var t1=_ints1.charAt(1);
                return twenty_to_ninety[t-2]+" "+one_to_twenty[t1-1];
            }
   }//for others

   return result;
}
Form.bdyPage.item_table.sub1.sub2.amountinwords.rawValue = AmountInWords.rawValue; // Final Output Field

For Example

Total amount field = 1250.00 (Input Field)
or
Form.bdyPage.item_table.sub1.sub2.grandTotal.formattedValue = 1250.00
and
Currency field = INR (Input Field)
or
Form.bdyPage.item_table.sub1.sub2.currencyCode.rawValue; = INR

Based on Output Format ( CurrencyVal + " " + resultwords+" " + Rupeesval + " and " + resultwords1 + " "+Paisaval+" Only") // Output Format written in code // You can change based on the requirement.

Final Output Field = INR one thousand two hundred fifty Rupees and Zero Paisa Only
or
Form.bdyPage.item_table.sub1.sub2.amountinwords.rawValue = INR one thousand two hundred fifty Rupees and Zero Paisa Only


Read More: Learn more JavaScript Code and FormCalc for Adobe form in SAP, and Learn Adobe form Script.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top