Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 13.11.02 - 13:45:45

Titel: rtitem ???
Beitrag von: Don Pasquale am 13.11.02 - 13:45:45
Hallo Leute,

ich stecke immer noch fest bei meinen Serienbriefen.
Folgender Code bringt immer den Fehler OBJECT VARIABLE NOT SET

Set WordDoc2 = object.Activate(True)


Und ich sehe wieder nicht warum.
Hat jemand eine Idee ?

Ciao
Don Pasquale

   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection   
   Dim doc As NotesDocument
   Dim MergeDoc As NotesDocument
   Dim MergeView As NotesView
   Dim rtitem As NotesRichTextItem
   Dim w As New NotesUIWorkspace
   Dim WordDocs As Variant
   Dim WordDoc As Variant
   Dim WordDoc2 As Variant   
   Dim object As Variant
   Dim WordObj As Variant
   Dim i As Integer
   Dim temp As String
   Dim templateName As String
   
   Set db = session.CurrentDatabase
   Dim dlgDoc As New NotesDocument(db)
   
   OK=False
   OK=w.dialogbox("Reaktionsschreibenpicker", True, True, False, False, False, False, "Wählen Sie eine Vorlage",dlgDoc)
   If OK Then
      templateName=dlgDoc.templatechoices(0)
      Set MergeView = db.GetView( "Reaktionsschreibenvorlagen" )
      Set MergeDoc = MergeView.GetDocumentByKey(templateName,True)
      Set rtitem = MergeDoc.GetFirstItem("Body")
      Set object = rtitem.GetEmbeddedObject("Microsoft Word Document")
      Set WordDoc2 = object.Activate(True) '******** OBJECT VARIABLE NOT SET
      
   End If
   
Titel: Re:rtitem ???
Beitrag von: Axel am 13.11.02 - 14:16:56
Hi,

ich denke "der Hund liegt hier gegraben".

Set object = rtitem.GetEmbeddedObject("Microsoft Word Document")

Als Parameter erwartet die Methode einen Dateinamen. Ich denke mal das es so ausehen sollte:

Set object = rtitem.GetEmbeddedObject("document.doc")

Den Namen musst du natürlich anpassen.

Axel

           
Titel: Re:rtitem ???
Beitrag von: Myron am 13.11.02 - 14:24:40
Hallo!!

Bekommst du ein Objekt von dem GetEmbeddedObject ?? (man sieht das eh im debugger)
Hatte auch mal eon änliches Problem .. bei mir hats so ausgesehen

Forall o In doc.EmbeddedObjects
  Set handleV = o.Activate(False)
  handleV.SaveAs("C:\temp\NotesEp.xls")
  handleV.Close
  Set handleV = Nothing
End Forall
Titel: Re:rtitem ???
Beitrag von: ata am 13.11.02 - 14:37:05
... wie das Axel bereits richtig erkannt hat fehlt das Objekt...

ata
Titel: Re:rtitem ???
Beitrag von: Axel am 13.11.02 - 14:37:24
@Myron

Ich denke nicht, dass man das "Set" weglassen kann.

Auszug aus der Designer - Hilfe:

Syntax
Set handleV = notesEmbeddedObject.Activate( show )

Axel
Titel: Re:rtitem ???
Beitrag von: Myron am 13.11.02 - 14:42:43
@Axel

habe zu schnell reagiert und mich geirrt! Hast recht, das braucht man! Wurde schon ausgebessert!

Grüße
Titel: Re:rtitem ???
Beitrag von: Don Pasquale am 13.11.02 - 15:15:48
Hallo Axel,

vielen Dank, da hätte ich lange suchen müssen,
da wäre ich nie drauf gekommen. Ich dachte das sei
der Typ und kein Name. :-)

Hi,

ich denke "der Hund liegt hier gegraben".

Set object = rtitem.GetEmbeddedObject("Microsoft Word Document")

Als Parameter erwartet die Methode einen Dateinamen. Ich denke mal das es so ausehen sollte:

Set object = rtitem.GetEmbeddedObject("document.doc")
         


Stimmt, da liegt der Hase im Pfeffer. Hardkodiert funktioniert die Sache auch. In welche Richtung muss ich suchen, damit ich von meinem Attachment den Namen bekomme ?
Die sollen ja nicht alle gleich heissen .

Titel: Re:rtitem ???
Beitrag von: Axel am 13.11.02 - 15:23:44
Hi,

ich hab das mal so gemacht:

Dim strDateiname As String
...
Set rtitem = doc.GetFirstItem("Body")    
If rtitem.Type = RICHTEXT Then
  Forall objects In rtitem.EmbeddedObjects
    If objects.Type = EMBED_ATTACHMENT Then
       strDateiname = objects.Source
    End If  'If objects.Type = EMBED_ATTACHMENT
  End Forall  'Forall objects In rtitem.EmbeddedObjects
End If  'If rtitem.Type = RICHTEXT

Messagebox strDateiname

...


Axel
Titel: Re:rtitem ???
Beitrag von: Don Pasquale am 13.11.02 - 15:35:41
@Axel


Auch noch Sourcecode direkt zum übernehmen,
das ist ja vom Feinsten.

Schnell noch das mergedoc angepasst und nun klappts
auch.


Da sage ich ganz herzlich Danke Schön.


Ciao

Don Pasquale