Domino 9 und frühere Versionen > ND6: Entwicklung
Attachment einer anderen DB öffnen
it898ur:
Für das Öffnen einer Datei mit der zugehörigen Standardanwendung reicht
taskid = Shell("cmd.exe /c start " + Dateiname , 0)
wobei Dateiname den lokalen Speicherort der Datei umfasst.
André
Alexis:
Hallo Forum,
Problem gelöst :-*. Danke für alle Beiträge und dem Forum, DIE Fundgrube schlechthin :D!
Wen's interessiert hier der Code:
--- 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( "", rtlink.DbReplicaID ) Then Messagebox "Unable to open database"
Set doc2 = db2.getDocumentByUNID(rtlink.DocUNID)
Set rtitem = doc2.GetFirstItem( "pdf" )
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
Call Source.Close(True)
End Sub
--- Ende Code ---
koehlerbv:
Nur eine Frage am Rande;
Was machst Du eigentlich hier
--- Code: ---file = Join(Split("c:\" & all.Name, " "), "")
--- Ende Code ---
mit der Join / Split-Kombination? Wozu soll die gut sein?
Abgesehen davon: Über Deinen Code wird sich der eine odere andere, der da noch einen Denkanstoss im "Handwerk Coding" benötigt, sicherlich sehr freuen!
Bernhard
Alexis:
Hallo Bernhard,
die Zeile
--- Code: ---file = Join(Split("c:\" & all.Name, " "), "")
--- Ende Code ---
habe ich eingefügt, weil beim Öffnen der exportierten Datei der Dateinamen mit Blanks nicht richtig erkannt wird: "MeinFile XYZ" versucht der Shellaufruf als "Meinfile" zu öffnen, was natürlich nicht gelingt.
Alexis
koehlerbv:
Ah ja - ich hätte mir die Anzahl bzw. nicht vorhandene Zahl von Leerzeichen in den Parametern genauer anschauen sollen ...
Du hättest aber natürlich auch statt der Join / Split-Kombination auch Replace verwenden können.
Bernhard
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln