Autor Thema: Datei in RT Feld bei Dokument Erstellung einfügen  (Gelesen 2691 mal)

Offline benjosi

  • Frischling
  • *
  • Beiträge: 18
Hallo,

wenn ich ein neues Dokument erzeuge, soll direkt eine Datei in ein RT Feld eingefügt werden. Ich habe bisher QueryOpen und Initialize ausprobiert. Ich kann leider in beiden Fällen kein uidoc speichern und somit ist das RT Feld nicht ansprechbar.

Ich möchte ein Dokument erzeugen, in dem eine Vorlagendatei (doc) enthalten ist, die später durch den Anwender bearbeitet werden kann.

Bin für jeden Tipp dankbar

benjosi

Driri

  • Gast
Re: Datei in RT Feld bei Dokument Erstellung einfügen
« Antwort #1 am: 26.06.07 - 08:41:47 »
Du mußt erst ein Dokument im Background erstellen, das Attachment dort anhängen und das Dokument dann im UI öffnen. Am besten setzt Du ein Flagfeld ein, das beim Speichern durch den User dann wieder umgeschossen wird.
Nicht gespeicherte (und somit noch geflaggte Dokumente) kannst Du einfach per periodischem Agent löschen.

Offline benjosi

  • Frischling
  • *
  • Beiträge: 18
Re: Datei in RT Feld bei Dokument Erstellung einfügen
« Antwort #2 am: 26.06.07 - 11:49:27 »
Ich hab leider noch nicht so viel Erfahrung. Der abgebildete Code funktioniert leider nicht. Kleine Erklärung vorweg. Ich möchte ein Dokument im Backend erstellen, welches dann die Maske Module zugewiesen bekommt. Dieses Dokument (xmlDoc) ist das Zieldokument, in dem ein RT Feld XMLFile existiert. In dieses Feld soll eine Datei eingefügt werden, die sich in dem Dokument templateDoc im RT Feld templateFile befindet.   

Mein Problem ist, dass ich das xmlFile (RTF) nicht in die Finger bekomme. Set xmlFile = xmlDoc.GetFirstItem("XMLFile") gibt noch keine Fehlermeldung aus, doch die lässt nicht lang auf sich warten. Call xmlFile.AppendRTItem(templateFile) verursacht die Fehlermeldung Object Variable not set. Ich weiss aber leider nicht warum.

        Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim xmlFile As NotesRichTextItem
   Dim templateFile As NotesRichTextItem
   Dim templateDoc As NotesDocument   
   Dim xmlDoc As NotesDocument
   
   Set db = session.CurrentDatabase   
   Set templateDoc = db.GetDocumentByUNID("719AC1D9995E4C47C12573050079325F")
   
   Set templateFile = templateDoc.GetFirstItem("TemplateWord")
   
   Set xmlDoc = New NotesDocument(db)
   xmlDoc.Form = "Module"
   Call xmlDoc.Save(True,True)
   Set xmlFile =xmlDoc.GetFirstItem("XMLFile")
   Call xmldoc.Save(True,True)
   Call xmlFile.AppendRTItem(templateFile)


Viele Grüße

benjosi

Driri

  • Gast
Re: Datei in RT Feld bei Dokument Erstellung einfügen
« Antwort #3 am: 26.06.07 - 11:56:32 »
Folgender Verbesserungsvorschlag :

Zitat
...
Set xmlDoc = New NotesDocument(db)
xmlDoc.Form = "Module"
Set xmlFile = New NotesRichTextItem(xmlDoc,"XMLFile")
Call xmlFile.AppendRTItem(templateFile)
Call xmldoc.Save(True,True)
...

Wobei so natürlich das komplette Item eingefügt wird. Wenn im TemplateDoc also mehrere Attachments sein können, müßte das ggf. abgefangen werden.

Offline benjosi

  • Frischling
  • *
  • Beiträge: 18
Re: Datei in RT Feld bei Dokument Erstellung einfügen
« Antwort #4 am: 26.06.07 - 12:02:53 »
Super, dankeschön. Funktioniert. Es kann nur eine Datei im TemplateDoc liegen. Eine Frage hätte ich aber noch, woran liegt es denn, dass mein Code nicht funktioniert. Ich würde es gerne verstehen.

Viele Grüße und vielen Dank für die Hilfe

benjosi

Driri

  • Gast
Re: Datei in RT Feld bei Dokument Erstellung einfügen
« Antwort #5 am: 26.06.07 - 12:44:29 »
Wenn Du ein Dokument im Backend erstellst, werden auch nur die Items angelegt, die Du explizit belegst.

Du hast aber lediglich das Item "Form" angelegt und dann das Dokument gespeichert. Ergebnis ist dann ein quasi leeres Dokument, denn weitere Felder, die in der Maske definiert sind, werden erst durch ein Speichern des Dokumentes im Frontend erzeugt.

D.h. in dem erzeugten Dokument gibt es kein Item "XMLFile" und daher kannst Du auch nicht darauf zugreifen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz