Domino 9 und frühere Versionen > Entwicklung

Extrahieren von Vor- und Nachnamen über Lotus Script

(1/3) > >>

Marshuhn:
Hallo Forum-User,

wir haben folgendes Problem. Wir lassen mit folgender Formel:

person = Strrightback(session.commonusername," ") + " , " + Strleftback(session.commonusername," ")

den Vor- und Nachnamen auslesen, damit wir damit über die Ansicht Personen|People auf das Names- und Adressbuch zugreifen können.
Die erste Spalte ist folgendermaßen sortiert:

Nachname , Vorname

Dieses ist nicht problematisch, wenn es nur einen Vornamen und einen Nachnamen gibt.
Wenn der User aber zwei Vornamen und einen Mehrfachnachnamen (auf der Kamp) mit Blanks besitzt, dann greift unsere Formel nicht mehr.

Wie ist es möglich, dass auch diese Konstellation sauber in Vor- und Nachname extrahiert wird und wir damit auf das Namens- und Adressbuch zugreifen zu können?

Gruß + Danke

Marshuhn

SeppHerberger:
Hallo Marshuhn,

ich weiss zwar nicht wie du den Namen extrahieren kannst. Ich weiss allerdins, dass die Ansicht ($People) nach dem Notes-Benutzernamen sortiert ist und den bekommst du über session.username.

Vielleicht hilft dir dass ja weiter.

Gruss

Daniel

Glombi:
Ich empfehle die Ansicht ($Users).

Dort steht der Name in allen denkbaren Formen (sogar Soundex) drin - aber klein geschrieben!

Andreas

Driri:
Ich würde einfach eine andere View aus dem N&A benutzen, z.B. die versteckte View $VIMPeople. Dort steht in der ersten Spalte der abbreviated Username.

Dann mit Evaluate und @Name([Abbreviate];@UserName) arbeiten.

Marshuhn:
Erst einmal recht herzlichen Dank an Alle!

Ich würde gerne die Lösung von Diri bevorzugen,

bekomme aber wieder bei der Evaluate-Zeile die Fehler-Meldung "Type Missmatch".

   Dim session As New NotesSession
   Dim books As Variant
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim done As Variant
   Dim person As String
   Dim person1 As Variant
   books = session.AddressBooks
   done = False   
'   person = Strrightback(session.commonusername," ") + " , " + Strleftback(session.commonusername," ")
'   person = session.username
   person1 = Evaluate(|@Name([Abbreviate];@UserName)|)
'   Msgbox person1
   '   person = session.username
   Forall b In books
    ' check every Domino Directory,
    ' unless we're already done
      If ( b.IsPublicAddressBook ) And ( Not done ) Then
         Call b.Open( "", "" )
      ' look up person's last name
      ' in People view of address book
         Set view = b.GetView( "($VIMPeople)" )
         Set doc = view.GetDocumentByKey( person )
      ' if person is found, display the phone number item
      ' from the Person document
         If Not ( doc Is Nothing ) Then
            Messagebox( "Phone for " + person  _
            + " is " + doc.Stellvertreter( 0 ) )
            done = True
            doc.Stellvertreter="Hugo1"
            Messagebox( "Phone for " + person  _
            + " is " + doc.Stellvertreter( 0 ) )
            If ( doc.Save( False, False ) = True ) Then
               Messagebox "Document " & doc.UniversalID & " successfully saved"
            Else
               Messagebox "Document " & doc.UniversalID & " was not saved"
            End If
         Else
            Msgbox "nicht gefunden"
         End If
      End If
   End Forall
  ' if done is still False, the person wasn't found
   If Not done Then
      Messagebox _
      ( "Sorry, unable to locate person's name." )
   End If

Wo liegt mein Denkfehler?

Gruß + Danke

Marshuhn

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln