lastname+", "+firstname

  • Hallo zusammen,


    bin noch nicht lange als Entwickler tätig und versuche bisher erfolglos aus dem CN den firstname und lastname auszulesen und in einem neuen Feld als lastname+", "+firstname auszugeben. Ziel ist, die User alphabetisch korrekt zu sortieren.


    Wer hat eine Lösung für mich? Danke!


    fuchs1959

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • @Name([Abbreviate];<Nutzer in Namensfeld>) liefert dir den vollen Namen (beispielsweise "Erich Meier").
    Nun nimmst du diesen output und splittest ihn in seine Worte und suchst dir das erste (ist der Vorname) und den letzten (ist der Nachname).


    Die Formel sieht dann so aus:


    @word(@Name([Abbreviate];Namensfeld);" ";1)+" , "+@word(@Name([Abbreviate];Namensfeld);" ";-1)


    Probleme kann es bei Namen wie "van der Veen" oder Doppelvornamen oder so geben. Ein paar @if's helfen aber da normalerweise. Poste einfach nochmal wenn du mit meiner Lösung nen Problem hast.

  • Wie wärs damit?


    lastname:=@rightback(@name([CN];Username);" ");
    firstname:=@leftback(@name([CN];Username);" ");


    Username ist die Var die komplette Mailadresse enthält


    Viel Spass!

  • Moin,


    da hast du natürlich recht, obwohl das "von" in dem falle gar nicht ausgelesen würde.


    weil rightback von rechts nach links liest würde beim 1. leerzeichen die rückgabe erfolgen oder bin ich da falsch
    ich habe gott seih dank keinen "von" im bestand
    wie würdest du das lösen?
    gruss
    moses

  • So wie Ihr das macht kommt trotzdem Käse raus.


    Probiert doch mal Eure Beispiele mit folgenden Namen aus:


    Walther von der Vogelweide
    Karl Maria Brandauer


    Wie wollt Ihr denn anhand eines Leerzeichens erkennen, wo der Vorname aufhört und der Nachname anfängt. Von dem ominösen Mittelinitial mal ganz zu schweigen ...


    Ich plädiere nach wie vor für den offiziellen Weg

    @name([G]; @Username) für den Vornamen (given name)
    @name([I]; @Username) für den Init. 2. Vorname (initial)
    @name([S]; @Username) für den Nachnamen (surename)


    Ich hab's gerade mal getestet - es geht nur nicht :-o


    Ich ziehe hiermit meinen Beitrag zurück ;)

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • G, I und S sind kein bestandteil des Notes namen..
    Die einzige weg es komplett selber zu machen ist mittels auslesen von den personen dokument im Öffentlichen adressbuch.
    @Right ( "Hans von Braun"; " ") => "Hans"
    @RightBack ( "Hans von Braun"; " ") => "von Braun"
    @Left ( "Hans von Braun"; " ") => "Braun"
    @LeftBack ( "Hans von Braun"; " ") => "Hans von"


    Weitere fragen ?

  • Danke allen zusammen!


    Ich habe eine für mich brauchbare Lösung noch in der Notes-Hilfe gefunden:


    _Name := @Name([CN]; Berater);
    _Berater := @Trim(@Word(_Name; "("; 1));
    _LastName := @RightBack(_Name; " ");
    _FirstName := @LeftBack(_Name; " ");
    CombinedName := _LastName + ", " + _FirstName;
    @If(CombinedName = ", "; Name; CombinedName)


    Und es funktioniert! Zur Zeit muss ich mich noch nicht über "von"'s und ähnliche Namensergänzungen ärgern. Mal sehen was dann passiert.


    Gruß


    fuchs1959

    :-? fuchs1959 :idea:


    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln! (Sokal)...

  • Du könntest ja noch einen zusätzliche kontrolle auf den Länge der combined name machen, und wenn der kurzer ist als den Original name, dann weißt du das eswas "fehlt".
    Oder vorher, und dann entscheiden den mittelteil am ende anzufügen..
    Meist wird "Hans von Braun" auch als "Braun, Hans von" aufgelistet.. also sollte das weniger problemen geben..
    Eine "Maria Gräfin Habsberg von Göbbingen" wäre wahrscheinlich eh nicht in solche listen unterzubringen... :)