Fehler beim Aufruf eines Dokuments per Shell

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Fehler beim Aufruf eines Dokuments per Shell

Beitrag von arkadiuszpaluszek »

Hallo!

Habe einen Fehler welcher nur auf dem Mac auftritt, steht evtl. (ist mir nicht ganz klar) auch im Zusammenhang mit einem hier beschriebenen anderen Problem:
viewtopic.php?f=18&t=52922

Habe folgende Ordnerstruktur:
MeineAnwendung / Formulare / AufrufendeDatei.odt
MeineAnwendung / Rechnungen / Zieldatei.odt

In der Zieldatei habe ich folgendes Makro ausgeführt:

Code: Alles auswählen

pfad=thisComponent.Location
MsgBox pfad
Ergebnis:
file:///Users/mymini/Netzlaufwerk/MeineAnwendung/Rechnungen/Zieldatei.odt

In der Anwendung AufrufendeDatei.odt kommt also folgender Code:

Code: Alles auswählen

pfad2="file:///Users/mymini/Netzlaufwerk/MeineAnwendung/Rechnungen/Zieldatei.odt"
			
pfad2=convertFromURL(pfad2) ' Konvertierung von der URL in eine systemkonforme Adresse
			msgbox ("pfad2=convertFromURL(pfad2)"+chr(13)+pfad2)
' BEVOR DIE RECHNUNG GEÖFFNET WERDEN KANN, MUSS GEPRÜFT WERDEN OB ES DIE DATEI MIT DEM 
' ENTSPRECHENDEM NAMEN GIBT
dim oSFA as Object
dim ordner_liste()

oSFA=createUnoService("com.sun.star.ucb.SimpleFileAccess")
ordner_liste=oSFA.getFolderContents(pfad,False)

sucherfolg=0
for i=0 to uBound(ordner_liste())
datei=convertFromURL(ordner_liste(i))
	if datei=pfad2 then sucherfolg=1

next

if sucherfolg=1 then
	' Rechnung oeffnen
		oShell=createUnoService("com.sun.star.system.SystemShellExecute")
msgbox pfad2
		oShell.execute(pfad2,,0)
	else
		msgbox("Zu dieser Rechnung gibt es im Rechnungsordner keine Datei mehr oder deren Bezeichnung wurde geändert.")
end if	
Es kommt nicht mal zu meiner MsgBox welche informieren soll, dass es die entsprechende Datei nicht gibt, stattdessen folgende Fehlermeldung:
BASIC-Laufzeitfehler
Es ist eine Ausnahme aufgetreten
Type:com.sun.star.system.SystemShellExecuteException
Message: No such file or directory

Sorry, ich habe mir den Pfad zuvor durch thisComponent.Location anzeigen lassen, verstehe also nicht, warum es diese Datei nun nicht geben soll.

Verzichte ich aber auf die Konvertierung per ConvertFromURL, bekomme ich zumindest meine eigene Fehlermeldung in der MsgBox, aber es funzt trotzdem nicht richtig!
Karolus
********
Beiträge: 7454
Registriert: Mo, 02.01.2006 19:48

Re: Fehler beim Aufruf eines Dokuments per Shell

Beitrag von Karolus »

Hallo
Falls ich bei deinem Code durchblicke, solltest du mal die Zeile:
ordner_liste=oSFA.getFolderContents(pfad2,False)
korrigieren.

und ob eine Datei existiert prüft man schlicht mit:

Code: Alles auswählen

if fileexists( pfad_zur_datei ) then
edit: offenbar handelt es sich um ein Writerdokument, das öffnet man nicht per systemshell sondern per

Code: Alles auswählen

stardesktop.loadComponentfromUrl(  pfad2 ,"_blank",0 ,NoArgs())
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten