You may want to put the following code in the exiting event of the field to
cause an immediate refresh. On large forms, this may increase refresh time.
Sub Exiting(Source as Field)
Dim ws as New NotesUIWorkspace
Dim UIDoc as NotesUIDocument
Set UIDoc = ws.CurrentDocument
Call uidoc.refresh
End Sub
Place the following in the input translation of the field you want to process.
Replace Phone1 and (608) in the 2 lines below with the appropriate values.
FieldToProcess := Phone1;
DefaultAreaCode := "(608) ";
shortnumber := @ReplaceSubstring(FieldToProcess; " " : "(" : ")" : "-" : "+" :
"*" : "="; "");
Tempvar :=
@If(
shortnumber = ""; "";
@Length(shortnumber) = 7;
DefaultAreaCode + @Left(shortnumber; 3) + "-" + @Right(shortnumber;
4);
@Length(shortnumber) = 10;
"(" + @Left(shortnumber; 3) + ") " + @Middle(shortnumber; 3; 3) + "-"
+ @Right(shortnumber; 4);
"Error1"
);
Tempvar2 := @If(Tempvar = "Error1";
@Do( Tempvar2 = FieldToProcess; @Prompt([OK]; "Invalid Entry"; "Enter a
valid phone number in the following format 123-456-7890"));
Tempvar);
Tempvar2
This was first published in November 2000