Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Legolas am 12.10.11 - 09:17:45
-
Hallo Forum,
ich sehe wohl gerade den Wald vor lauter Bäumen nicht mehr.
Ist das überhaupt möglich was ich tun will?
Ich will ein Richtextfeld, welches Attachments beinhaltet, kopieren und im neuen RT-Feld alle Attachments rauslöschen.
Das neue RT-Feld soll danach aussehen, als ob nie ein Attachment in diesem Feld gewesen wäre!
Am liebsten wäre es mir, wenn dies innerhalb des gleichen Dokuments beim Speichern geschehen könnte.
Grüße
Bernd
-
Hi Bernd.
Meinst Du
notesrichtextitem.GetUnformattedText
oder
notesrichtextitem.GetFormattedText
-
Hallo DerAndre,
leider hilft mir diese Funktion nicht weiter, da die gesamte Formatierung des RT-Feldes verloren geht!
Der Inhalt des original RT-Feld mit all seinen Formatierunge (Schriftart, Grafik, usw.) soll im neuen RT-Feld bestehen bleiben.
Lediglich alle Attachemnts sollen aus dem neuen RT-Feld verschwunden sein, als ob diese nie da gewesen wären.
Grüße
Bernd
-
Schau dir mal die Methoden
notesItem.CopyItemToDocument( document, newName$ )
notesEmbeddedObject.Remove
in der Designer-Hilfe an. Da gibt's auch Beispiele dazu. Vielleicht bringt dich das weiter.
Axel
-
Ich mag mich irren, aber gab es da nicht Probleme, wenn man innerhalb eines Dokumentes das RichText-Item quasi verdoppelt ? Irgendwas habe ich da im Hinterkopf, daß dann die verdoppelten Attachments kryptischen Dateinamen bekamen oder so was. Das sollte man also auf jeden Fall gut testen.
-
Hallo,
ich habe mich mit einem ähnlichen Problem herum geschlagen und folgende Lösung gefunden, wenn
ein RT-Feld in ein UI-Frontend kopiert werden soll. Vielleicht hilft das weiter...
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim ddoc As NotesDocument
Dim uiddoc As NotesUIDocument
Dim rtis As NotesRichTextItem
Dim rtit As NotesRichTextItem
Set uidoc = ws.CurrentDocument
Set db = session.CurrentDatabase
Set view = db.GetView("anyView")
Set dc = ws.PickListCollection ( PICKLIST_CUSTOM, False, db.Server, db.FilePath, view.Aliases(0), _
"Textbausteine", "Bitte einen Text auswählen")
If dc.Count = 0 Then
Exit Sub
End If
Set rdoc = uidoc.Document
Set doc = dc.GetFirstDocument
If Not doc Is Nothing Then
Set rtis = doc.GetFirstItem("Rechnungstext")
Set ddoc = db.CreateDocument
ddoc.form = "fmContainer"
ddoc.SaveOptions = "0"
Set rtit = New NotesRichTextItem (ddoc, "RTTemp")
rtit.AppendRTItem rtis
rtit.Update
Set uiddoc = ws.EditDocument (True, ddoc, False)
uiddoc.GotoField ("RTTemp")
uiddoc.SelectAll
uiddoc.Copy
uiddoc.Close
uidoc.GotoField "ReStandardText"
uidoc.Paste
End If
Der Open und Close des temporären UIDocuments geht so schnell, dass man(n) es nicht mitbekommt.
Viele Grüsse
-
Leider kommt man an die Attachments im RT-Item nicht immer so einfach ran
Ich würde folgenden Ansatz wählen
1. das Item zuerst in ein temporäres Dokument kopieren
2. dort mit evaluate("@attachmentnames",doc) die Attachmenst ermitteln und löschen
3. ein rtItem.update machen, ggf muss man das Dok sogar speichern
(ich weiß nicht ob hier irgendwelche Probleme zu erwarten sind, da Notes intern die
Attachments nicht im Dokument mitspeichert, sondern lediglich eine Objekt-ID)
4a. das Item im Backend in das gewünschte Dok kopieren und das Doc (neu) öffnen.
Falls dies im Backend nicht möglich ist,
4b. es so machen wie rhaller
oder
4c. http://www.qtzar.com/blogs/qtzar.nsf/blog.xsp?entry=DSLH-7NRK85&SessionID=CNFLZXUWFB
Gruß
Roland