Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: skywook am 09.02.06 - 20:34:42

Titel: RichText Feld und Anhang
Beitrag von: skywook am 09.02.06 - 20:34:42
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
Titel: Re: RichText Feld und Anhang
Beitrag von: koehlerbv am 09.02.06 - 23:02:30
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
Titel: Re: RichText Feld und Anhang
Beitrag von: Axel am 10.02.06 - 08:31:20
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
   ...

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

Titel: Re: RichText Feld und Anhang
Beitrag von: skywook am 11.02.06 - 20:30:28
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?