Hallo,
hier mein Code:
Sub Postopen(Source As Notesuidocument)
Dim session As New NotesSession
Dim rti As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtlink As NotesRichTextDocLink
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Set doc = source.Document
If doc.IsNewNote Or source.EditMode Then Exit Sub
Set rti = doc.GetFirstItem("Link")
Set rtnav = rti.CreateNavigator
If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
Messagebox "No doclinks in Link item",, "No doclinks"
Else
Set rtlink = rtnav.GetElement
End If
Call doc.Save(False,False)
Dim doc2 As NotesDocument
Dim db2 As New NotesDatabase( "", "" )
If Not db2.OpenByReplicaID( "ServerName", rtlink.DbReplicaID ) Then Messagebox "Unable to open database"
Set doc2 = db2.getDocumentByUNID(rtlink.DocUNID)
Set rtitem = doc2.GetFirstItem( "Body_1" )
If rtitem Is Nothing Then
Messagebox "No attachment available"
Else
Dim file As String
Forall all In rtitem.EmbeddedObjects
If ( all.Type = EMBED_ATTACHMENT ) Then
file = Join(Split("c:\" & all.Name, " "), "")
Call all.ExtractFile (File)
taskid = Shell("cmd.exe /c start " + file , 0)
End If
End Forall
End If
End Sub
Alexis
Verzeihung aber irgendwie raff ich das konzeptionell nicht.
Du bist hier doch ohnehin schon im ersten bereits offenen Dokument:
Sub Postopen(Source As Notesuidocument)
und du frägst hier
Set doc = source.Document
If doc.IsNewNote Or source.EditMode Then Exit Sub
doch genau dieses Dokument das du nach deiner letzten Aussage eigentlich gar nicht öffnen willst ab.
Auto Launch = None bewirkt nur das nichts was in dem Dokument das du gerade öffnest steht automatisch irgendwas anderes (Maske Nr.2) öffnet. Du öffnest deine Maske Nr. 1 aber gerade also muss die auch angezeigt werden.
Was du jetzt tun kannst ist, am Ende des PostOpen ein source.close(true) einzubauen damit geht das Dokument halt sofort wieder zu. Ich frage mich allerdings was da für ein Konzeption dahinter steht und ob man das nicht vielleicht auch anders lösen könnte.