![]() |
#1 |
Участник
|
Dynamics AX Sustained Engineering: Bank Checks do not display the correct numerals when using the Italian Language
Источник: http://blogs.technet.com/b/dynamicsa...-language.aspx
============== Bank Checks do not display the correct numerals when using the Italian Language Scenario: If you print an Accounts Payable check using the Italian language the check numerals may print incorrectly. Resolution: To resolve this issue you can modify the Global class adding an Italian specific method to return the correct check printing. 1. In the AOT >> expand classes >> locate the Global Class. 2. Right Click the Global Class >> Choose New Method 3. Add the below code example which translates the Italian language static TempStr numeralsToTxt_IT(real _num) { int numOfPennies = (decround(frac(_num), 2) * 100) mod 100; real test = _num - frac(_num); int numOfTenths; str 20 ones[19], tenths[9], hundreds, thousands, millions, billions, trillions; int64 temp; str 200 returntxt; real modOperator(real a1, real a2) { int tmpi; real tmp1, tmp2; tmp1 = a1 / a2; tmpi = real2int(tmp1); tmp2 = tmpi; return (tmp1 - tmp2)*a2; } real checkPower(real _test, int64 _power) { int64 numOfPower,numOfPowerOrig; if (_test >= _power) { numOfPower = _test div _power; numOfPowerOrig = numOfPower; if (numOfPower == 1 && _power > 1000) { returntxt = returntxt + ' ' + substr("@SYS5437",0,2); } if (numOfPower >= 100) { temp = numOfPower div 100; if(temp == 1 && _power >= 1000) { returntxt = returntxt + ' ' + hundreds; } else { 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 = numOfPowerOrig == 1 ? returntxt + ' ' + billions : returntxt + ' ' + "miliardi"; _test = modOperator(_test, 1000000000); break; } case 1000000 : { returntxt = numOfPowerOrig == 1 ? returntxt + ' ' + millions : returntxt + ' ' + "milioni" ; _test = modOperator(_test, 1000000); break; } case 1000 : { returntxt = numOfPowerOrig == 1 ? "mile" : returntxt + ' ' + thousands ; _test = modOperator(_test, 1000); break; } case 100 : { returntxt = returntxt + ' ' + hundreds; _test = modOperator(_test, 100); break; } } } return _test; } 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"; millions = "@SYS26653"; billions = "@SYS26654"; trillions = "@SYS101697"; test = checkPower(test, 1000000000); test = checkPower(test, 1000000); 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 = real2int(test); returntxt = returntxt + ' ' + ones[numOfTenths]; } if (numOfPennies) { returntxt = '***' + returntxt + ' ' + "@SYS5534" + ' ' + num2str(numOfPennies,0,0,0,0) + '/100'; } else { returntxt = '***' + returntxt + ' ' + "@SYS5534" + ' ' + '00/100'; } return returntxt; } 4. Add the below code in bold to the Classes\Global\numeralsToTxt case 100 : { returntxt = returntxt + ' ' + hundreds; _test = modOperator(_test, 100); break; } } } return _test; } if(substr(xUserInfo::find().Language, 1, 2) !='it') { returntxt = Global::numeralsToTxt_IT(test); return returntxt; } 5. Save and Compile the code. Источник: http://blogs.technet.com/b/dynamicsa...-language.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|