Hallo zusammen,
habe zwar schon gesucht, aber nichts gefunden, was mein Problem beschreibt.
Ich habe eine Funktion, bei der ich per Schaltfläche im Backend ein Dokument erstelle, das nach der Verarbeitung in Script zuerst noch im Front-End geöffnet wird und dann vom anwender als Mail verschickt wird.
Ursprünglich wurde der Inhalt eines Textfeldes aus einer Konfiguration eingelesen. Dort sind Feldnamen angegeben, die durch # vorne und hinten gekennzeichnet sind. Der Text wird von vorne bis hinten durch gegangen und bei dem, was zwischen # steht, wird aus dem Ursprungsdokument der Wert des Feldes geholt und in den Text eingefügt. Dann wird der Text im neuen Dokument ins Richtextitem eingefügt. Am Ende kommt ein DocLink über AppendDocLink auf das Ursprungsdokument rein und danach dann noch das Wort "Anlagen:". Wenn das alles gemacht ist, werden verschiedene Dateien angehängt.
soweit so gut. Diese Funktion klappte prima. Der Doclink wurde gesetzt und die Attachments wurden "normal" angehängt.
Jetzt mußte ich die Funktion ändern, da die Anwender in der Konfiguration den Inhalt formatieren wollen.
Also habe ich in der Konfiguration ein Richtextfeld reingemacht in dem dann der Text drin steht. Zusätzlich noch ein Textfeld, in dem die Feldnamen als Platzhalter aufgelistet sind. Dadurch wird das handling ja anders. Die Funktion sieht jetzt folgendermaßen aus (nur der Teil, auf den es mir ankommt):
'Erstellen von neuer Mail
Set mailDoc = New NotesDocument(db)
Call mailDoc.ReplaceItemValue(cdfForm, cForm)
Call mailDoc.ReplaceItemValue("From", s.Username)
Call mailDoc.ReplaceItemValue("DocType", strMailversandTyp)
Call mailDoc.ReplaceItemValue("dfSpracheTX", currDoc.GetItemValue("dfSpracheTX")(0))
If strSprache = "DE" Or strSprache = "DEDE" Then
strTempSprache = "DEDE"
Else
strTempSprache = "ENEN"
End If
'Setzen der Verteiler
Call mailDoc.ReplaceItemValue("SendTo", verteilerArray)
Call mailDoc.ReplaceItemValue("CopyTo", kopieArray)
'Setzen und Bearbeiten von Subject
strText = konfigDoc.GetItemValue("dfDefaultMailSubjectTX")(0)
While Instr(1, strText, cWildCardTX) > 0
Call sInsertFieldValueToDefaultMailText(currDoc, strText, strTempSprache)
Wend
Call mailDoc.ReplaceItemValue("Subject", strText)
'Setzen und Bearbeiten von RichTextFeld
Set konfigBody = konfigDoc.GetFirstItem("dfDefaultMailBodyTX")
'Kopieren des RichTextFelds aus der Konfiguration in das neue Doc - Formatierung wird übernommen
Call mailDoc.CopyItem(konfigBody, "Body")
Set MailBodyItem = mailDoc.GetFirstItem("Body" )
'Verarbeitung der Platzhalter, Daten werden aus dem Ursprungsdoc gelesen und im Text eingefügt
Dim platzhalter As Variant
platzhalter = konfigDoc.GetItemValue("dfDefaultMailWildCardsTX")
Set rtRange = mailbodyItem.CreateRange
Forall o In platzhalter
strTausch1 = o
strTausch2 = Left(Right(o, Len(o)-2), Len(o)-4)
strTausch3 = currDoc.GetItemValue(strTausch2)(0)
If Instr(strTausch3, "~~") > 0 Then
strTausch3 = Strleft(Strright(strTausch3, strTempSprache + "~~"), "~~")
End If
Call rtrange.Findandreplace(strTausch1, strTausch3, RT_REPL_ALL)
End Forall
'Einfügen des DocLinks
Call MailBodyItem.AppendDocLink(currDoc, "")
'Einfügen von Anlagen
Call MailBodyItem.AddNewLine(2)
If strSprache = "DE" Then
Call MailBodyItem.AppendText("Anlagen: ")
Else
Call MailBodyItem.AppendText("Enclosures: ")
End If
'Verarbeiten der Attachments
Call MailBodyItem.AddNewLine(1)
Set rtItem = currDoc.GetFirstItem(konfigDoc.GetItemValue("dfDefaultAttachmentsTX")(0))
If Not rtItem Is Nothing Then
Call MailBodyItem.AddNewLine(1)
If currDoc.HasEmbedded Then
Set tmpItem = currDoc.GetFirstItem("dfAnlagenNameTX")
varNamen = fBEBExplode(tmpItem.Text, ";")
Forall o In varNamen
Set embeddedObject = currDoc.GetAttachment(Trim(o))
If Not embeddedObject Is Nothing Then
Call embeddedObject.ExtractFile(strTemp + embeddedObject.Name)
Call MailBodyItem.EmbedObject(EMBED_ATTACHMENT, "", strTemp + embeddedObject.Name)
Call MailBodyItem.AddNewLine(1)
Kill strTemp + embeddedObject.Name
End If
End Forall
End If
End If
Set uiMemo = ws.Editdocument(True, mailDoc, False,,False)
Call uiMemo.Refresh
Nachdem ich die Konfiguration auf Richtext umgestellt habe und sich die Verarbeitung des Textes geändert hat, wird der DocLink und das Wort "Anlagen" nicht mehr eingefügt und die Attachments hängen im V2 Style unter der Linie im Dokument. Das mit den Attachments wäre ja so tragisch nicht, da sie ja trotzdem angehängt sind, aber der DocLink muß da mit rein.
Teilweise ist der DocLink da, wenn ich das ganze debugge, aber auch nicht immer. Was mach ich denn falsch? Kann mir jemand helfen?
Gruß
SZ