Domino 9 und frühere Versionen > ND6: Entwicklung

Attachment einer anderen DB öffnen

<< < (3/3)

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