Autor Thema: Powerpoint-Datei direkt aus Dokument aufrufen  (Gelesen 3241 mal)

Offline suuper

  • Junior Mitglied
  • **
  • Beiträge: 84
Powerpoint-Datei direkt aus Dokument aufrufen
« am: 10.04.12 - 14:51:41 »
Hallo zusammen,

ich möchte gerne aus einem Dokument direkt eine Powerpoint-Präsentation aufrufen.

Wenn ich einen Link-Hotspot vom Typ URL erstelle und den Dateipfand der Powerpoint-Datei angebe (z.B. c:\Vertriebszahlen.ppt), dann geht der InternetExplorer auf und zeigt die erste Folie der Präsentation an.
Wie muss ich den Link gestalten, dass sich direkt die Anwendung Powerpoint mit der Datei öffnet?

Vielen Dank vorab für Eure Tipps.

VG,
suuper

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #1 am: 10.04.12 - 15:04:51 »
Hallo,

Wie sieht denn Dein aktueller Link aus?

Die folgende Schreibweise tut bei mir eigentlich immer:
"file:///c:\Vertriebszahlen.ppt"


Andreas

Offline suuper

  • Junior Mitglied
  • **
  • Beiträge: 84
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #2 am: 10.04.12 - 16:22:16 »
Hi Andreas,

ja genau die drei ///-Zeichen hatte ich nicht...

Da wir uns auf einer Terminalserver-Umgebung befinden, muss der Aufruf in einer CMD so heißen:

"C:\Programme\Microsoft Office PE\OFFICE11\MSACCESS.EXE" "c:\Daten von der Zentrale\Zahlen.ppt"

Ich probiere schon alles durch was mir so einfällt, aber als Notes-Link bekomme ich die Zeile nicht hin...ich glaube es liegt an den "-Zeichen...gab es da nicht auch eine noteseigene Schreibweise für? Was war das nur?

VG,
suuper

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #3 am: 10.04.12 - 17:43:54 »
Was spricht gegen einen Action-Hotspot und "@Command( [Execute] ; application ; fileNames ) "?

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #4 am: 10.04.12 - 18:35:16 »
Wenn ich mir die Ausgangsfrage anschaue: Was spricht gegen eine Maske mit RTF für die Anhänge und die Startoption "Ersten Anhang starten"?
Weitere Möglichkeiten: Das Verfahren, das Roland beschreibt, ergänzen um ein Feld mit Pfad\Dateinamen (hierzu gleich ein gescheiter Auswahldialog für die Berechtigten), und aus der Dateiendung berechnet die Maske dann gleich an Hand entsprechender Konfigurationsdokumente den Pfad zum ausführbaren programm auf dem Terminalserver.

ja genau die drei ///-Zeichen hatte ich nicht...

Die drei Slashes sind syntaktisch falsch - das spielt ggf. nicht jeder Browser mit.

Bernhard

Offline suuper

  • Junior Mitglied
  • **
  • Beiträge: 84
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #5 am: 11.04.12 - 08:21:40 »
Was spricht gegen einen Action-Hotspot und "@Command( [Execute] ; application ; fileNames ) "?

Gruß
Roland

Da spricht der "normale" User dagegen.
Ich glaub nicht, dass z.B. unsere Sekretärin das hin bekommt...

Offline suuper

  • Junior Mitglied
  • **
  • Beiträge: 84
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #6 am: 11.04.12 - 08:32:31 »
Weitere Möglichkeiten: Das Verfahren, das Roland beschreibt, ergänzen um ein Feld mit Pfad\Dateinamen (hierzu gleich ein gescheiter Auswahldialog für die Berechtigten), und aus der Dateiendung berechnet die Maske dann gleich an Hand entsprechender Konfigurationsdokumente den Pfad zum ausführbaren programm auf dem Terminalserver.

Das ist eine super Möglichkeit...werd ich mir mal für die Zukunft merken!
Danke!

Aber leider für meinen Fall nicht umsetzbar:
Der User hat im Prinzip ein Erfassungsformular mit einem riesigen Body-Field.
In diesem Body-Field muss jede Menge Text rein und selektiv an jeweils unterschiedliche Stellen sollen halt Dokumente mit eingebunden werden, die bei uns im Netz liegen (und da müssen die Dateien auch bleiben, also ein Dateianhang im Dok geht leider nicht!).

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #7 am: 11.04.12 - 09:04:42 »
Erstell doch einen Button, der den Link für Deinen User einfügt...

Hier mal Code, der das erledigen kann... (habe ich vor langer Zeit mal gefunden)...

Code
Option Public
%REM
setFileLink()
Dateiverknüpfung mit Prüfung auf gültigen Pfad im Frontend per Lotus Script
setWebLink("www.MeineRessource.de")
Hotspot-Erstellung auf Web-Ressource im Frontend per Lotus Script
1. Code als LS-Library "FileLinker" in der Mail-DB speichern
2. Im Mailformular (Memo) per
Use "FileLinker"
einbinden.
By jo@chim 2003 - gullugullu@gmx.net
Modified by stoeps 21.1.03
Modified by jo@chim 22.1.03
have fun ! don't remove this disclaimer if you publish the code
%END REM
Public Const mailField$="Body" 'Name des RT-Feldes
Public Const dlgTitle$="Dateiverknüpfung setzen" 'Titel der Dateiauswahldialogbox
Public Const errTitle$="Datei kann nicht verknüpft werden" 'Titel der Fehlermeldungsbox
Public Const strLink$="Klicken Sie hier, um die Ressource zu öffnen" 'Text des Hotspots
'Diverse Fehlermeldungen für die Dateiverknüpfung - bitte melden, falls ich welche vergessen habe:;)
Public Const errMsg0$="Allgemeiner Fehler"
Public Const errMsg1$="Ungültiges Laufwerk"
Public Const errMsg2$="Netzwerk nicht verfügbar"
Public Const errMsg3$="Kritischer Fehler"
Public Const errMsg4$="More Data"
Public Const errMsg5$="Funktion nicht unterstützt"
Public Const errMsg6$="Kein Netzwerk verfügbar oder ungültiger Pfad"
Public Const errMsg7$="Kein Netzwerk installiert"
Public Const errMsg8$=|Sie haben ein lokales Laufwerk ausgewählt
oder sind nicht mit dem Netzwerk verbunden|
Declare Function NEMGetFile Lib "NNOTESWS" Alias "NEMGetFile" _
( Z As Integer, Byval N As Lmbcs String, Byval F As Lmbcs String, Byval T As Lmbcs String ) As Integer
Dim UNC As String * 512
Declare Function WNetGetConnection Lib "mpr.dll" Alias _
"WNetGetConnectionA" _
(Byval lpszLocalName As String, _
Byval lpszRemoteName As String, _
cbRemoteName As Long) As Long
Sub setFileLink() 
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
n$ = String$(1024, " ")
ret% = NEMGetFile( 0, n$,"" , dlgTitle$)
If ret% = 0 Then Exit Sub
strFile$ = Fulltrim(n$)
If Mid$(strFile$,2,1)=":" Then strFile$=Fulltrim(GetUNCPath(Left$(strFile$,2)))+Right$(strFile$,Len(strFile$)-2)
If Left$(strFile$,2)<>"\\" Then Exit Sub
tmpStrFile$=Escape(strFile$)
Set uidoc = ws.CurrentDocument
fileNum% = Freefile()
tmpFile$ = Environ$("temp")+"\~tmpFile.htm"
Open tmpFile$ For Output As fileNum%
Print #fileNum%, |<html><meta http-equiv="content-type" content="text/html" charset="iso-8859-1">
<a href="file:///| +tmpstrFile$ + |" >|+ strFile$ + |</a></html>| 
Close fileNum%
If uidoc.CurrentField<>mailField$ Then uidoc.GotoField( mailField$ )
Call uidoc.Import("HTML File",tmpFile$)
End Sub
Sub setWeblink(strFile$)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
descrLink$=strLink$
' oder descrLink$=strFile$ falls der Link erscheinen soll
Set uidoc = ws.CurrentDocument
fileNum% = Freefile()
tmpFile$ = Environ$("temp")+"\~tmpFile.htm"
Open tmpFile$ For Output As fileNum%
Print #fileNum%,"<html><a href=""http:\\" + strFile$ + """>" + descrLink$ + "</a></html>"
Close fileNum%
If uidoc.CurrentField<>mailField$ Then uidoc.GotoField( mailField$ )
Call uidoc.Import("HTML File",tmpFile$)
End Sub
Public Function GetUNCPath(strDriveLetter As String) As String
On Error Goto GetUNCPath_Err
Dim lngReturn As Long
Dim lpszLocalName As String
Dim lpszRemoteName As String
Dim cbRemoteName As Long
lpszLocalName= strDriveLetter
lpszRemoteName = String$(255, Chr$(32))
cbRemoteName = Len(lpszRemoteName)
lngReturn = WNetGetConnection(lpszLocalName, lpszRemoteName, cbRemoteName)
Select Case lngReturn
Case 1200&
msg$ = errmsg1$
Case 1201&
msg$ = errmsg2$
Case 1208&
msg$ = errmsg3$
Case 234
msg$ = errmsg4$
Case 50&
msg$ = errmsg5$
Case 1203&
msg$ = errmsg6
Case 1222&
msg$ = errmsg7$
Case 2250&
msg$ = errmsg8$
Case 0
End Select
If Len(msg$) Then
Msgbox msg$,16,errTitle$
Else
GetUNCPath = Left$(lpszRemoteName, cbRemoteName)
End If
GetUNCPath_End:
Exit Function
GetUNCPath_Err:
Msgbox errmsg0$,16,errTitle$
Resume GetUNCPath_End
End Function
Function Escape(s As String) As String
%REM
Code kopiert von openntf.org Projekt codebin:
Brief Description: LotusScript version of JavaScript's escape function 
Rating: Not Rated Yet 
Contributor: John Smart 
Category: Lotusscript 
Type: String functions 
Notes Version: R5.x, R6.x 
Last Modified: 20 Aug 2002 
Encodes a string to the "x-www-form-urlencoded" form, enhanced with the UTF-8-in-URL proposal. This is the official
standard to encode URL's to support any possible character set (all Unicode characters).
Angepaßt am 21.1.03 C. Stoettner
%END REM
Dim result As String
Dim i As Integer
Dim c As Long

For i = 1 To Len(s)
c = Uni(Mid$(s, i, 1))
If c = Uni(" ") Then
result = result + "%20"
Elseif (c>=Uni("A") And c<=Uni("Z")) Or (c>=Uni("a") And c<=Uni("z")) Or (c>=Uni("0") And c<=Uni("9")) Then
result = result + Uchr(c)
Elseif c = Uni("ä") Then
result = result + "%E4"
Elseif c = Uni("ö") Then
result = result + "%F6"
Elseif c = Uni("ü") Then
result = result + "%FC"
Elseif c = Uni("Ä") Then
result = result + "%C4"
Elseif c = Uni("Ö") Then
result = result + "%D6"
Elseif c = Uni("Ü") Then
result = result + "%DC"
Elseif c = Uni("ß") Then
result = result + "%DF"
Else
result = result + Uchr(c)
End If
Next
Escape = result
End Function
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Powerpoint-Datei direkt aus Dokument aufrufen
« Antwort #8 am: 11.04.12 - 09:36:09 »
Sein Problem ist, dass die Files auf einem UNC-Pfad/Netzlaufwerk liegen und er somit einen file:// Link erzeugen muss. Dein Code erzeugt nur HTML-Links(ließe sich aber auf file:// umbauen) aber wie Bernhard schon schrieb, ist dies Browserabhängig.

So ein Link funktioniert z.B. bei mir: file://///servername/Freigabename/pfad/datei.txt

Beim Firefox braucht man 5 Slashes, dann geht es (beim alten FF < 2 und beim aktuellen IE sind es 4, was m.E. richtig(er) ist. Siehe http://forum.de.selfhtml.org/archiv/2007/3/t149498)

Jetzt kann es natürlich sein, dass dies irgendwann von FF gefixed/geändert wird oder ihr eine andere Browservorgabe bekommt und deine Links alle ins Leere zeigen.
Ein weiterer Nachteil ist, dass die Datei mit dem Browser geöffnet wird, also hier immer der Datei/Speichern Dialog kommt.

Um dein Vorhaben sinnvoll umzusetzen, müsstest du wirklich den @command(execute) Befehl verwenden oder ein Shortcut-File (*.lnk) erstellen und einbetten.

um so einen @command-Link zu erstellen, könntest du folgendes machen:
1. Dem User einen Auswahldialog zeigen, welche Datei er auswählen möchte
2. ein temp-Dok mit DXL erstellen, welches den @command-Link enthält
3. das Tempdok in einem Dialog öffnen, welcher automatisch alles selektiert, in die Zwischenablage kopiert und automatisch wieder zu geht.

Der User muss dann den Link nur noch an die entsprechende Stelle in das Dokument kopieren.

Wenn die Links nicht unbedingt innerhalb des Richtexts sein müssen und die Zahl der Anhänge begrenzt ist, könntest du in deiner Maske eine bestimmte Anzahl von Feldern machen (z.B. 10).
In jedes Feld kommt ein UNC-Pfad und hinter das Feld ein File-Auswahl Button, sowie der Launcher-Button, welcher @command(execute; UncPfad1) aufruft.

Vorteil dieser Lösung ist die Wartbarkeit. Die Links sind nicht innerhalb des Richtextes, welcher einen späteren Zugriff nahezu unmöglich macht. Ändert sich z.B. der Server/Ablageort, so schreibst du dir ein kleines Agentilein, welcher einfach die Felder neu berechnet.  ;D
Auch kannst du dir in einer Ansicht anzeigen, wer auf welche Datei verlinkt. Ist z.B. eine Powerpoint Datei falsch oder muss gelöscht werden, so kannst du die jeweiligen Autoren der referenzierenden Dokumente darüber informieren etc...


Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz