Autor Thema: RichText Feld und Anhang  (Gelesen 2202 mal)

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
RichText Feld und Anhang
« 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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: RichText Feld und Anhang
« Antwort #1 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

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: RichText Feld und Anhang
« Antwort #2 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

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: RichText Feld und Anhang
« Antwort #3 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?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz