Hallo zusammen,
vorweg: ich habe gesucht und auch gefunden und ausprobiert ohne Ende. ABER...
Problem:
Ich habe ein RT Feld. Dieses enthält ein eingebettetes Bild. (also kein Anhang)
Ich möchte im QueryClose des Dokuments dieses Bild aus dem RT Feld in ein zweites
RT Feld kopieren. Dieses Feld soll berechnet und später sichtbar sein.
Also:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Dim ritem1 As Variant
Dim ritem2 As NotesRichTextItem
Set doc = source.Document
Set ritem1 = doc.GetFirstItem("ri1")
Set ritem2 = doc.GetFirstItem("ri2")
Call ritem2.AppendRTItem(ritem1)
End Sub
In ri1 ist das Bild eigebettet. Das soll nun einfach in ri2 rein. Ich bin sicher, dass es hier im Forum schon 20 mal irgendwo steht ... nur die Beispiele die ich gefunden hab mit ähnlichem Code wie oben laufen alle nicht bei mir...
Man stoße mich mit der Nase drauf!
Ich danke euch..
Worn
Hey nochmal,
also ich hab es nun so:
Dim doc As NotesDocument
Dim ritem1 As NotesRichTextItem
Dim ritem2 As NotesRichTextItem
Set doc = source.Document
Set ritem1 = doc.GetFirstItem("ri1")
Call doc.RemoveItem("ri2")
Set ritem2 = New NotesRichTextItem(doc,"ri2")
Call ritem2.AppendRTItem(ritem1)
Call doc.Save(True,False,False)
Ohne das ich das Item vorher lösche wird das append nämlich immer wieder durchgeführt und man hat nach ein paar mal öffnen ne ganze latte von den Bildern im berechneten Feld.
@pram:
Wo muss das source.refresh denn hin? Wenn ich doc.save damit ersetze dann bringt es nichts? Muss ich dazu den ganzen Code in Querysave packen... das lief auch nicht korrekt...? Vll. kannst du da noch genauer erläutern. Wäre super.
Danke nochmal an alle!
Worn
Ich dachte so im QuerySave:
Dim doc As NotesDocument
Dim ritem1 As NotesRichTextItem
Dim ritem2 As NotesRichTextItem
call source.refresh(true) ' alle RT-Inhalte ins Backend schieben
Set doc = source.Document
Set ritem1 = doc.GetFirstItem("ri1")
while doc.HasItem("ri2")
Call doc.RemoveItem("ri2")
wend
Set ritem2 = New NotesRichTextItem(doc,"ri2")
Call ritem2.AppendRTItem(ritem1)
Call ritem2.compact() ' schadet nicht
Ohne Gewähr! Aber das müsste meiner Meinung nach funktionieren. Jetzt könnte es aber sein dass es nicht funktioniert, weil "ri2" in der Maske vorhanden ist, bzw. nicht auf "berechnet" gestellt ist, und zwischen Query und Postsave wieder überschrieben wird.
(Der Inhalt in "ri2" erscheint auf Jeden Fall erst nach erneutem Öffnen der Maske)
Ein doc.save im QuerySave ist meiner Meinung nach ein absolutes "No-Go" weil da höchstwahrscheinlich Speicherkonflikte entstehen
Gruß
Roland