Get Lotus Notes Name
names for the given FirstName and the LastName in a specific server/address
book.
This function can be used as folllowing :
ser$ = "DominoChennai" ' server
addb$ = "Mynames.nsf" ' Address Book name
nflag = 0 ' Flag for names
FN$ = "Gopala" ' First name
LN$ = "Krishnan" ' Last name
fnames$ = GetLNName(LN$,FN$,nflag,ser$,addb$ )
If (nflag = 1 ) Then ' Exact match found
f2 = Evaluate(|@Explode("|+ fnames$ +|";",~")|)
doc.FirstName= f2(0) + " " + f2(1)
doc.LastName= f2(2)
doc.LNname= f2(3)' setting the exact matched name
ElseIf (nflag = 0) Then ' no match found
doc.frname = Trim(fnames$)' setting the deault name itself
doc.FirstName = Trim(t3)
doc.LastName = Trim(t2)
Else
' Found Similar Sounding words
' Gett all the name list in "Allnames"
f1$ = |@Explode("|+AllNames$+|";";")|
Allnames = Evaluate(f1$)
Forall itm In Allnames
' Extract the LotusNotes name from very names
LNNme = Evaluate(|@Subset(@Explode("|+itm+|";"~");-1)| )
Print "Lotus notes Names : " + LNNme(0)
End Forall
End If
-------------------------------------
Function GetLNName(lastname As String , firstname As String , flag As Integer
,NServer As String , NAddBook As String) As String
' This function will return Notes Name if Lastname and first name is passes
as Argument is a Exact Match and will set flag = 1 (success)
' If the function is not able to find Lotus Notes Name
' it will find the the similar Sounding names and will return a string of the
type
' fName, mName , lName ~ FullName ; fName, mName , lName ~ FullName ;
fName, mName , lName ~ FullName ;... and will
' set the flag = Negetive <n> where n is the Number of similar sounding names
that are returned
' If it is not able to find one such name then the Output will be firstname,
lastname and set the flag = 0
' If null server is set it will take the current local server and if null
address book name is passes it will take as names.nsf
Dim session As New Notessession
Dim ws As New NotesUiWorkspace
Dim view As Notesview
Dim doc As NotesDocument
Dim doccol As NotesDocumentCollection
Dim t1 As String, t2 As String
Dim db As New NotesDatabase("","")
Dim Found As Variant
Dim Serv As String
Dim Soundname As String
Dim snxC As Integer
' Setting the server and address book
If (Trim(NServer) = "" ) Then
serv = Cstr(session.Currentdatabase.server)
Else
serv = NServer
End If
If (Trim(NAddBook) = "") Then
NAddBook = "names.nsf"
End If
If ( Not db.Open( serv, NAddBook) ) Then
Msgbox "Address Book not found in the Server",16,"Error"
flag = 0
GetLNName = Trim (lastname + ", " + firstname)
Exit Function
End If
' getting the view from address book
Set view = db.getview("($VIMPeopleBYLastName)")
Set doccol = view.GetAllDocumentsByKey(Trim(lastname),False)
If (doccol.count < 1 ) Then
Print "Lotus Notes Name Not found for the Person " + Trim (lastname
+ ", " + firstname)
flag = 0
GetLNName = Trim (firstname + ", " + lastname )
Exit Function
End If
Found = False
t1$ = ""
t2$ = ""
SoundName$ = ""
snxC = 0
Set doc = doccol.getfirstdocument
While ( Not Doc Is Nothing) And Not Found
t1$ = Trim(doc.FirstName(0))
t2$ = Trim(doc.MiddleInitial(0))
chkvar$ = t1$ + " " + t2$
If ( Lcase(Trim(chkVar$)) = Lcase(Trim(firstname)) And
Lcase(Trim(doc.Lastname(0))) = Lcase(Trim(Lastname))) Then
Found = True ' exact match
Print "Found Lotus Notes name for the Person " + doc.Fullname(0)
GetLNName = doc.Fullname(0)