Domino 9 und frühere Versionen > ND6: Entwicklung
RichText Feld und Anhang
(1/1)
skywook:
Hallo,
habe im Postopen in einer Maske folgenden Code. Möchte gerne das aus einer Vorlagendatenbank ein Dateianhang in diese Maske übernommen wird. Das Dokument mit dem Dateianhang habe ich in einer Collection. Würde dann gerne mit CopyItemToDocument weitermachen. Leider hänge ich - wie bekomkme ich diesen in das aktuelle Dokument. Bei der Forumssuche habe ich keinen passenden Tipp gefunden.
Sub Postopen(Source As Notesuidocument)
Dim db As New NotesDatabase("yc18w01n/srv1","sdaten\Zusatzdaten.nsf")
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim vorgabe As Variant
Dim aktuell As Variant
suche$ = {Suchbegriff =} & {"VRFix"}
Set collection = db.Search(suche$,Nothing,0)
'Messagebox collection.count
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Messagebox doc.Bemerkungen(0)
Set vorgabe = doc.GetFirstItem( "Anhang" )
If vorgabe.Type = RICHTEXT Then
'Messagebox "ja"
Dim anhang As NotesItem
Set anhang = doc.GetFirstItem( "Anhang" )
Call anhang.CopyItemToDocument( ???????????
End If
Set doc = collection.GetNextDocument(doc)
Wend
Exit Sub
koehlerbv:
Die Frage ist noch etwas unklar. Wenn meine Kristallkugel aber Recht hat:
Du willst ein Attachment aus einem anderen Dokument bei der Erstellung eines neuen Dokuments gleich dort einfügen.
Das ist ein gewisser Stunt. Problem: Du kannst das nur im Backend machen. Will heissen, das Dokument muss im Backend erstellt, GESPEICHERT und erst dann im FrontEnd geöffnet werden.
In vielen Fällen hilft eine Alternative, die auch ohne (ggf. verheerendes) Zwangsspeichern auskommt: Neues Dokument erstellen (ohne Speichern), im FrontEnd öffnen. Daneben das Setup-Dokument im FrontEnd öffnen, Feld mit Attachment annavigieren, Inhalt selektieren und ins Clipboard kopieren (siehe Methoden von NotesUIDocument) und in das neue Dokument nach Annavigieren des Zielitems kopieren.
Könnte es das schon sein?
Bernhard
Axel:
Da es anscheinend auch mehrere Attachments werden können, würde ich das nicht unbedingt mit CopyItemTodocument machen. Besser ist es in diesem Fall mit AppendRTItem zu arbeiten.
--- Code: ---Sub Postopen(Source As Notesuidocument)
Dim db As New NotesDatabase("yc18w01n/srv1","sdaten\Zusatzdaten.nsf")
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim thisdoc As NotesDocument
Dim aktuell As Variant
Dim rtitem As NotesRichtextItem
Dim vorgabe As NotesRichTextItem
'Zugriff auf aktuelles Dokument und das RTF-Feld
Set thisdoc = Source.Document
Set rtitem = thisdoc.GetFirstItem("Body")
suche$ = {Suchbegriff =} & {"VRFix"}
Set collection = db.Search(suche$,Nothing,0)
'Messagebox collection.count
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Messagebox doc.Bemerkungen(0)
Set vorgabe = doc.GetFirstItem( "Anhang" )
If vorgabe.Type = RICHTEXT Then
'Messagebox "ja"
'Einfügen des Inhaltes an Ende des RTF-Feldes im aktuellen Dok.
rtitem.AppendRTItem(vorgabe)
End If
Set doc = collection.GetNextDocument(doc)
Wend
...
--- Ende Code ---
Den Feldnamen musst du entsprechend anpassen, außerdem felht jegliche Fehlerbehandlung.
Der nächste Punkt ist der, dass das Anhängen im Backend passiert, somit muss das Dokument, wie Bernhard es schon gesagt hat, erst gespeichert und dann im Frontend geöffnet werden.
Alternative wäre die Funktion ReOpen von unserem Forumsmitglied ata.
Siehe u. a. hier: http://atnotes.de/index.php?topic=28412.msg179608#msg179608
Axel
skywook:
Danke, Bernhard und Axel,
hab beides ausprobiert und hat auch beides funktioniert. Habe aber noch eine andere Variante.
Kann man denn eine Datei in den Gemeinsamen Ressourcen per Script als Anhang einfügen?
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln