Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: _Christian_ am 01.04.08 - 15:57:22
-
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte eine Mail auf Knopfdruck erstellen, die Daten aus dem aktuellen Dokument in einerMail öffnet um diese weiterleiten zu können.
Funktioniert soweit ganz gut
Dummerweise schaffe ich es aber nicht den erstellten Text vor der Signatur einzufügen.
Der Text wird immer hinter der Signatur abgedruckt. ???
Kann mir da jemand helfen?
Hier ein Auszug aus meinem Code:
Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem ( mailDoc, "ody" )
Call rtitem.AddNewline(1)
Call rtitem.AppendText ("Dear Customer,")
Call rtitem.AddNewLine(1)
Call rtitem.AppendText("your registration was successful!")
Call rtitem.AddNewLine(1)
Call rtitem.AppendText("Please enter the code below to complete registration.")
Call rtitem.AddNewline(2)
Call rtitem.AppendText("User: " + User)
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Serial: " + Serial)
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Registration Key: " + RegCode)
' fill other fields
mailDoc.Subject = "Successful Registration!"
mailDoc.EnterSendTo = SendTo
mailDoc.Body = rtitem.GetFormattedText(False,0)
Mfg
Christian
-
Hier fehlen entscheidende Teile des Codes - vor allem ist nicht ersichtlich, was Du noch im Frontend tust (das Einfügen der Signatur ohne Programmierung wäre Frontend!).
Mehr Input, mehr Output.
Bernhard
-
Hier mein kompletter Code des Buttons:
Ps: Meine Signatur ist eine htm-Datei die automatisch eingefügt wird.
Sub Click(Source As Button)
' user maildatabase
Dim userMailDb As Variant
userMailDb = Evaluate("@MailDbName")
' open maildatabase
Dim mailDb As New NotesDatabase(userMailDb(0), userMailDb(1))
' create mail
Dim wrk As New NotesUIWorkspace
Dim mailDoc As NotesDocument
Set mailDoc = mailDb.createDocument()
'open current document
Dim forDoc As NotesUIDocument
Set forDoc = wrk.CurrentDocument
'get information from current document
Dim user,serial,regcode,sendTo As String
User = forDoc.FieldGetText("User")
Serial = forDoc.FieldGetText("Serial")
RegCode = forDoc.FieldGetText("RegCode")
SendTo = forDoc.FieldGetText("SentTo")
'create Mailbody (NotesRichTextItem)
Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem ( mailDoc, "ody" )
Call rtitem.AddNewline(1)
Call rtitem.AppendText ("Dear Customer,")
Call rtitem.AddNewLine(1)
Call rtitem.AppendText("your registration was successful!")
Call rtitem.AddNewLine(1)
Call rtitem.AppendText("Please enter the code below to complete registration.")
Call rtitem.AddNewline(2)
Call rtitem.AppendText("User: " + User)
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Serial: " + Serial)
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Registration Key: " + RegCode)
' fill other fields
mailDoc.Subject = "Successful Registration!"
mailDoc.EnterSendTo = SendTo
mailDoc.Body = rtitem.GetFormattedText(False,0)
'open created mail
wrk.editDocument True,mailDoc
End Sub
Ich bräuchte also eine Funktion oder Formel die es mir erlaubt einen Text in die Mail einzufügen, und zwar am Anfang des Body Feldes, da die Signatur schon beim Erstellen einer neuen Mail importiert wird.
Mfg
Christian
-
Wenn Du den eigentlichen Mail-Inhalt im Backend erzeugst, musst Du auch die Signatur dort erzeugen. Du hast Dir da ein ziemlich komplexes Thema (Frontend vs. Backend plus RichText) vorgenommen ...
Weiters:
Dim user,serial,regcode,sendTo As String
Du weisst aber schon, dass nur die Variable "sendto" vom Typ String ist - der Rest ist vom Typ Variant. Das hat zwar mit Deinem problem nichts zu tun, aber sollte dennoch bekannt sein.
Bernhard
-
Das würde dann ja heissen, dass jeder, der dieses Feature benutzt, das automatische Anhängen der Signatur deaktivieren muss.
Und ich müsste den Aufruf der Signatur in meinen Code mit hineinnehmen.
Oder kennt jemand eine Lösung mit der man dieses Problem eleganter lösen kann?
Bin für jede Hilfe dankbar
Mfg
Christian
-
Da du kein Feld form mitgibst, öffnet sich das neue Mail-Dokument mit der Vorgabemaske MEMO. Schrieb doch einfach noch die beiden Zeilen
maildoc.form="Bookmark"
maildoc.~$HideMailHeader="1"
rein. Dann wird keine Signatur gezogen.
Mit den Standard-Bordmitteln ist das der einfachste Weg, die Signatur zu umgehen (du kannst auch die Telefonnotiz nehmen - die zieht auch keine Signatur).
Sonst wird es aufwändig.
Gruß
Norbert
-
Vielen Dank für die Tipps...
Hab das Problem auf ne andere Art gelöst:
Öffne das erstellte Mailfile nochmal und schreib die Daten dann rein.
Das rtitem fällt dabei weg
Code:
Dim uiMailDoc As NotesUIDocument
Set uiMailDoc = wrk.editDocument (True,mailDoc)
Call uiMailDoc.GotoField("Body")
Call uiMailDoc.InsertText("Dear Customer, " +Chr(10))
Mfg
Christian