Autor Thema: Umsetzung eines Feldes in Vornamen und Nachnamen  (Gelesen 3678 mal)

Offline mweitzel

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Ich liebe dieses Forum!
Umsetzung eines Feldes in Vornamen und Nachnamen
« am: 11.05.15 - 09:38:44 »
Hallo,

mit folgendem Scriptteil lese ich aus dem Feld "from" den Inhalt aus und stelle diesen in das Feld edv_auftraggeber.

Leider kommt der Inhalt aber in dem Format "CN=Vorname Nachname/O=NotesDomäne" im Feld edv_auftraggeber an.
Kann mir jemand helfen das Script zu ergänzen, dass nur "Vorname Nachname" im Fled edv_auftraggeber ankommt?

         Set Item = New NotesItem (docTicket, "edv_auftraggeber", "" )
         Call Item.Appendtotextlist (docMail.GetFirstItem( "from" )) ' Get Mail From
         Call docTicket.Save (True, True )

Im zweitn würde ich gerne auf gleichem Weg ein Datumsfeld übertragen. Leider läßt mir der Befehl appentotextlist das nicht zu, sondern erwartet wie der Name schon sagt text.
Vorab schon vielen Dank für die Unterstützung

Driri

  • Gast
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #1 am: 11.05.15 - 10:11:39 »
zum ersten Problem:

Entweder erzeugst Du ein NotesName-Objekt mit dem Wert aus "From" und kannst dann darüber auf den CN zugreifen oder Du arbeitest mit @Name und Evaluate.

Falls das ein simples Textfeld ohne Mehrfachwerte ist, würde ich übrigens nicht mit Item und AppendToTextList arbeiten, sondern mit einem einfachen Call doc.ReplaceItemValue(...).


zum zweiten Problem:

Auch hier würde ich mit ReplaceItemValue arbeiten, siehe dazu auch die Designer-Hilfe. Wenn Du einen Datumswert übergibst, bekommt das Item auch den entsprechenden Typ.

Offline mweitzel

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Ich liebe dieses Forum!
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #2 am: 11.05.15 - 10:47:06 »
Danke für den Hinweis mit dem Replaceitemvalue-Befehl.
Folgenden Befehl nimmt er mir auch an.

Call docticket.Replaceitemvalue("edv_auftraggeber", docMail.GetFirstItem( "from" ))

Möchte ich dort aber dann die Namensumsetzung mit einbauen, meckert er die Syntax an. Noch ne Idee?

Call docticket.Replaceitemvalue("edv_auftraggeber", Evaluate(@Name([CN];(docMail.GetFirstItem( "from" )))))

Mitch

  • Gast
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #3 am: 11.05.15 - 11:31:01 »
Evaluate erwartet ein Makro als String. Zum Beispiel {@Name([CN]; "Peter Mueller/Company")}. Das müsstest du dir in deinem Fall zusammen bauen, also so dass der Inhalt des from-Items anstatt "Peter Mueller/Company" drin steht.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #4 am: 11.05.15 - 11:32:08 »
Es Fehlen eigentlich die Anführungszeichen beim Evaluate.

Mach das lieber in eine Stringvariable und nimm anstatt " ein | am Anfang und am Ende.
Das erspart die die Hampelei mit den "

Was willst Du denn mit den Feldern machen?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Driri

  • Gast
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #5 am: 11.05.15 - 11:35:38 »
Ich kann nur dringend die Designer-Hilfe empfehlen, da steht das für die meisten Themen sehr gut beschrieben und inkl. Beispiele.

Offline mweitzel

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Ich liebe dieses Forum!
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #6 am: 11.05.15 - 15:37:18 »
Hallo,
so weit bin ich aktuell gekommen.
Es erscheinen auch bei der Abarbeitung keine Fehler. Leider ist das Feld edv_auftraggeber aber nicht gefüllt. Sieht jemand den Fehler?

                                             Dim tmpvar As NotesName
         Dim tmpvar1 As Variant
         
         Set tmpvar = New NotesName(docmail.getitemvalue("from")(0))
         tmpvar1 = Evaluate("@Name([CN];tmpvar)")
         Call docticket.Replaceitemvalue("edv_auftraggeber", tmpvar1(0))

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #7 am: 11.05.15 - 15:45:44 »
Ein Evaluate läuft immer auf ein Dokument, wenn kein Dokument gegeben ist, helfen Dir auch Variablen nicht. So ist es richtig:
Code
Dim tmpvar1 As Variant
tmpvar1 = Evaluate("@Name([CN];from)", docmail)
Call docticket.Replaceitemvalue("edv_auftraggeber", tmpvar1(0))
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Mitch

  • Gast
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #8 am: 11.05.15 - 15:46:11 »
Häh? Jetzt mischst du beide Ansätze. Wieso mit NotesName UND @Name?  ;D

Entweder mit NotesName über die "Common"-Property:
Code
varFrom = docMail.From(0)
Set namFrom = New NotesName(varFrom)
Call docTicket.ReplaceItemValue("edv_auftraggeber", namFrom.Common)

... oder über ein Evaluate, aber da musst du den Inhalt der Variablen richtig reinstecken:
Code
varFrom = docMail.From(0)
eval = Evaluate({@Name([CN]; "} & varFrom & {"})
Call docTicket.ReplaceItemValue("edv_auftraggeber", eval(0))
Edit: Nee, lieber was Tode schrieb ;)

Offline mweitzel

  • Junior Mitglied
  • **
  • Beiträge: 88
  • Ich liebe dieses Forum!
Re: Umsetzung eines Feldes in Vornamen und Nachnamen
« Antwort #9 am: 12.05.15 - 07:08:38 »
 :D Ich danke euch allen für die Unterstützung. Die Lösung von Tode funktioniert perfekt.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz