REM {*************************************************}; REM { Copyright (c) 1995-2005 Teamwork Solutions, Inc. }; REM { All rights reserved worldwide }; REM {*************************************************}; Name := YourFieldNameHere; REM; REM "DON'T MESS WITH IT BELOW HERE EXCEPT TO ADD TO PREFIX/SUFFIX/COMPANY NAME LISTS"; REM; PrefixList := "MR." : "MR" : "MRS." : "MRS" : "DR." : "DR" : "MS." : "MS"; REM; SuffixList := "II" : "III" : "IV" : "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9" : "0" : "?" : "(?)" : "(SP?)" : "..." : "AIA" : "CDP" : "CPA" : "CPIM" : "C.M.A." : "ETC." : "ETC" : "JR" : "JR." : "LPA" : "L.P.A." : "L. P. A." : "NLT" : "P.E." : "P. E." : "PHD" : "R.A." : "R. A." : "RPA" : "SR" : "SR." : "PE" : "P.E." : "P. E."; REM; IncSuffixList := "AB" : "ACCESS" : "ACCOUNT" : "ACCOUNTS" : "AGENCY" : "AGENCIES" : "AGENT" : "AGENTS" : "ASSOC" : "ASSOC." : "ASSOCIATES" : "ASSOCIATION" : "AUTHORIZED" : "BHD" : "BHD." : "BUREAU" : "CENTER" : "CHOICES" : "CLEANING" : "CO" : "CO." : "COLLEGE" : "COLLEGES" : "COMMUNICATION" : "COMMUNICATIONS" : "COMPANIES" : "COMPANY" : "COMPUTER" : "COMPUTERS" : "CONSTRUCTION" : "CONSULTANTS" : "CONSULTING" : "CORP" : "CORP." : "CORPORATION" : "CPA’S" : "DCS" : "COMPENSATION" : "CUSTOMER" : "DEPARTMENT" : "DEVELOPMENT" : "DIRECT" : "DIVISION" : "ELECTRIC" : "ELECTRICAL" : "ELECTRICITY" : "ENTERPRISE" : "ENTERPRISES" : "EXPRESS" : "GAS" : "GMBH" : "GRAPHICS" : "GROUP" : "GRP" : "GRP." : "HEALTH" : "HELP" : "HOSPITAL" : "HOSPITALS" : "HOTEL" : "HOTLINE" : "HELPDESK" : "INC" : "INC." : "INCORPORATED" : "INDUSTRIES" : "INDUSTRY" : "INFORMATION" : "INFO" : "INSTITUTE" : "INSTITUTES": "INSTITUTION": "INT" : "INT." : "INTERNATIONAL" : "INTERNET" : "LABS" : "LEAGUE" : "LIFE" : "LIMITED" : "LLP" : "LP" : "L.P." : "LTD" : "LTD." : "MANAGEMENT" : "MOTEL" : "NA" : "N.A." : "N. A." : "PARTNERS" : "PARTNERSHIP" : "PAYABLE" : "RECIEVABLE" : "RELATIONS" : "RESOURCE" : "RESOURCES" : "SECRETARY" : "SERVICE" : "SERVICES" : "SOFTWARE" : "SOLUTIONS" : "SRI" : "SUPPORT" : "SYSTEMS" : "TECHNICAL" : "TECHNOLOGIES" : "TRAVEL" : "UK" : "UNIVERSITIES" : "UNIVERSITY" : "&"; REM; DblLastNames := "DE" : "DEL" : "DE LA" : "DER" : "LA" : "LE" : "LES" : "MAC" : "MC" : "SAINT" : "ST" : "ST." : "STE" : "STE." : "VAN" : "VON"; REM; REM "DON'T MESS WITH IT BELOW HERE, PERIOD."; REM; FinalSuffix := @If(@Contains(Name; ","); "," +@Right(Name; ","); @Contains(Name; "("); " (" + @Right(Name; "("); @Contains(Name; "#"); " #" + @Right(Name; "#"); @Contains(Name; "@"); " @" + @Right(Name; "@"); ""); REM; CName := @If(@Contains(Name; ","); "," + @Left(Name; ","); @Contains(Name; "("); @Left(Name; "("); @Contains(Name; "#"); @Left(Name; "#"); @Contains(Name; "@"); @Left(Name; "@"); Name); REM; ExpName := @Explode(CName); Words := @Elements(ExpName); A := @Subset(ExpName; 1); B := @If(Words >= 2; @Subset(@Subset(ExpName; 2); -1); ""); C := @If(Words >= 3; @Subset(@Subset(ExpName; 3); -1); ""); D := @If(Words >= 4; @Subset(@Subset(ExpName; 4); -1); ""); E := @If(Words >= 5; @Subset(@Subset(ExpName; 5); -1); ""); F := @If(Words >= 6; @Subset(@Subset(ExpName;6); -1); ""); G := @If(Words >= 7; @Subset(@Subset(ExpName; 7); -1); ""); H := @If(Words >= 8; @Subset(@Subset(ExpName; 8); -1); ""); LastWord := @Select(Words; A; B; C; D; E; F; G; H); Suffix := @If(@IsMember(@UpperCase(LastWord); SuffixList); ", " + LastWord; ""); NextLast := @If(Words != 1; @Select(Words - 1; A; B; C; D; E; F; G; H); ""); Prefix := @If(@IsMember(@UpperCase(A); PrefixList); A + " "; ""); FName := @If(Words >= 2 & Suffix != ""; ""; Prefix = ""; A; B); LNameP1 := @If(Suffix = ""; LastWord; NextLast); ThirdLast :=@Select(Words - @If(Suffix = ""; 1; 2); A; B; C; D; E; F; G; H); LNameP2 := @If(@IsMember(@UpperCase(ThirdLast); DblLastNames) &ThirdLast != FName; ThirdLast + " "; ""); FourthLast :=@Select(Words - @If(Suffix = ""; 2; 3); A; B; C; D; E; F; G; H); LNameP3 := @If(@IsMember(@UpperCase(FourthLast); DblLastNames) &FourthLast != FName; FourthLast + " "; "") + LNameP2; FNP := @Member(FName; ExpName); LNP := @Member(@If(LNameP3 != ""; @Trim(@Word(LNameP3; " "; 1)); LNameP1); ExpName); MidNames := LNP - FNP - 1; MName := @If(MidNames >= 1; " " + @Implode(@Subset(@Subset(ExpName; LNP -1); -MidNames); " ") ; ""); REM; LastName := LNameP3 + LNameP1; FirstNames := @Trim(@Left(Name; LastName)); EndingBits := @Right(Name; LastName); REM; LastName + ", " + FirstNames + EndingBits