Description:- Here
I have given simple demonstration to create amount to word in ax 2012. Here I
have create method for return word value what you are passing amount. Create
below method in your class or form and pass parameter you will get word value.
Code:-
Example:-
In my example like i m giving value of 1500.20 it will return.
"One Thousand Five Hundred And Twenty Paisa"
Code:-
Public str 1000 ConvertAmountInWords(real _num,str 30 subCurrency="") { int numOfPennies = frac(_num)*100 mod 100; int test = real2int(round(_num,0)); int paise; int numOfTenths; str 20 ones[20], tenths[9], hundreds, thousands, lakhs, crores, millions, billions; str 40 textpaise; int tmpnumofpennies; int temp; str 200 returntxt; boolean Con2; int checkPower(int _test, int _power) { int numOfPower; if (_test >= _power) { Con2 = true; numOfPower = _test DIV _power; if (numOfPower >= 100) { temp = numOfPower DIV 100; returntxt = returntxt + ' ' + ones[temp] + ' ' + hundreds; numOfPower = numOfPower MOD 100; } if (numOfPower >= 20) { temp = numOfPower DIV 10; returntxt = returntxt + ' ' + tenths[temp]; numOfPower = numOfPower MOD 10; } if (numOfPower >= 1) { returntxt = returntxt + ' ' + ones[numOfPower]; numOfPower = numOfPower MOD 10; } switch(_power) { case 1000000000 : { returntxt = returntxt + ' ' + billions; _test = _test MOD 1000000000; break; } case 10000000 : { returntxt = returntxt + ' ' + crores; _test = _test MOD 10000000; break; } case 100000 : { returntxt = returntxt + ' ' + lakhs; _test = _test MOD 100000; break; } case 1000 : { returntxt = returntxt + ' ' + thousands; _test = _test MOD 1000; break; } case 100 : { returntxt = returntxt + ' ' + hundreds; _test = _test MOD 100; break; } } } else if(_test == 0) { if(Con2 == false) { numOfPower = 20; returntxt = returntxt + ' ' + ones[numOfPower];// + ' ' + hundreds; Con2 = true; } //break; } return _test; } ones[20] = "Zero"; ones[1] = "@SYS26620"; ones[2] = "@SYS26621"; ones[3] = "@SYS26622"; ones[4] = "@SYS26626"; ones[5] = "@SYS26627"; ones[6] = "@SYS26628"; ones[7] = "@SYS26629"; ones[8] = "@SYS26630"; ones[9] = "@SYS26631"; ones[10] = "@SYS26632"; ones[11] = "@SYS26633"; ones[12] = "@SYS26634"; ones[13] = "@SYS26635"; ones[14] = "@SYS26636"; ones[15] = "@SYS26637"; ones[16] = "@SYS26638"; ones[17] = "@SYS26639"; ones[18] = "@SYS26640"; ones[19] = "@SYS26641"; tenths[1] = 'Not used'; tenths[2] = "@SYS26643"; tenths[3] = "@SYS26644"; tenths[4] = "@SYS26645"; tenths[5] = "@SYS26646"; tenths[6] = "@SYS26647"; tenths[7] = "@SYS26648"; tenths[8] = "@SYS26649"; tenths[9] = "@SYS26650"; hundreds = "@SYS26651"; thousands = "@SYS26652"; lakhs = "Lakh"; crores = "Crore"; millions = "@SYS26653"; billions = "@SYS26654"; test = checkPower(test, 1000000000); test = checkPower(test, 10000000); test = checkPower(test, 100000); test = checkPower(test, 1000); test = checkPower(test, 100); if (test >= 20) { numOfTenths = test DIV 10; returntxt = returntxt + ' ' + tenths[numofTenths]; numOfTenths = numOfTenths MOD 10; test = test MOD 10; } if (test >= 1) { numOfTenths = test; returntxt = returntxt + ' ' + ones[numOfTenths]; } if (numOfPennies) { returntxt = returntxt + ' ' + "@SYS5534" + "\n\n"; } paise=numofPennies; if(paise) { if(paise >=20) { numofTenths= paise DIV 10; returntxt=returntxt + ' '+tenths[numofTenths]; numofTenths = numofTenths MOD 10; paise=paise MOD 10; } if(paise >=1) { numOfTenths=paise; returntxt=returntxt+ ' '+ones[numOfTenths]; } returntxt=returntxt+" Paise"; } //Text = returntxt + " Only"; return returntxt ;}
Example:-
In my example like i m giving value of 1500.20 it will return.
"One Thousand Five Hundred And Twenty Paisa"
Thanks for comments.....