![]() |
#1 |
Участник
|
Phone Number Formatting Mask
Источник: http://alexvoy.blogspot.com/2009/12/...ting-mask.html
============== It is pity but AX does not have the mask functionality on StringEdit fields. (versions 3.x- 4.x at least) I changed the standard functionality for Phone field of Customers form so that the input phone number will be formatted as (xxx) xxx-xxxx[x] For example, if one input 1234567890 it will be presented and saved as (123) 456-7890 ![]() ![]() For 12fs3.45*6.78--90 it will be presented and saved as (123) 456-7890 with no non-numericals. 12345678901234567 will be as (123) 456-7890123456 it does not truncate the tail. If finally it does not look like (xxx) xxx-xxxx the system alerts the user about that however the input value will be saved. ![]() The following methods were added/changed: ClassDeclaration of Customers form X++: public class FormRun extends ObjectRun { ... boolean sisValidateCalled; } X++: public void enter() { super(); sisValidateCalled = false; } public boolean validate() { #define.CorrectPhoneLettersNumber(14) boolean ret; int length; Phone newPhone; ; ret = super(); // creates new phone number in the format (xxx) xxx-xxxx[x] newPhone = SISTools::formatPhoneNumber(this.text()); length = strlen(newPhone); if (length != #CorrectPhoneLettersNumber) checkFailed(strfmt("Phone numbers should be like: (xxx) xxx-xxxx")); CustTable.Phone = newPhone; CustTable_ds.write(); sisValidateCalled = true; return ret; } public boolean leave() { boolean ret; ret = super(); if (!sisValidateCalled) this.validate(); return ret; } // creates new phone number in the format (xxx) xxx-xxxx[x] X++: static public Phone formatPhoneNumber(Phone _phone = "") { Phone newPhone = ""; str char; int length = strlen(_phone); int i; container numbers = ['0','1','2','3','4','5','6','7','8','9']; ; // remove all non numbers from field text for (i=1; i<=length; i++) { char = substr(_phone,i,1); if (confind(numbers,char)) { newPhone = newPhone + char; } } length = strlen(newPhone); // create new phone number in the format (xxx) xxx-xxxx from 1234567890 newPhone = "(" + substr(newPhone,1,3) + ") " + substr(newPhone,4,3) + "-" + substr(newPhone,7, length-6); return newPhone; }
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|