The following methods were added/changed:
ClassDeclaration of Customers form
StringEdit Phone field methods:
ClassDeclaration of Customers form
public class FormRun extends ObjectRun { ... boolean sisValidateCalled; }
StringEdit Phone field methods:
public void enter()
SISTools class (some collection of utilities)
{
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; }
SISTools class (some collection of utilities)
// creates new phone number in the format (xxx) xxx-xxxx[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; }