Seite 1 von 1
Speichern im Hintergrund
Verfasst: Di, 15.04.2008 22:46
von matlat
Hallo,
ist folgendes Vorgehen in OO möglich?
Ich bearbeite eine Datei in ods oder odt und habe diese ständig geöffnet.
Zwischendurch muss ich in doc oder xls speichern,
möchte aber meine Ursprungsdatei in ods oder odt geöffnet behalten.
Ich möchte also ein ähnliches Verhalten wie beim pdf-Export.
Für Hilfe wäre ich sehr dankbar.
Vielen Dank schon mal
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Di, 15.04.2008 23:56
von matlat
Hallo 'freedom',
danke für deine Unterstützung, aber sie hilft mir bei meiner Frage nicht weiter.
Ich versuche es noch einmal anders zu erklären:
Wenn ich odt geöffnet habe und dann in doc speichere, habe ich doc geöffnet.
Ich muss also erst doc schließen und dann odt wieder öffnen,
um am Ursprungsdokument weiterarbeiten zu können.
Das ist mir zu viel Gewechsel.
Den Vergleich mit pdf finde ich doch passend, weil ich in pdf speichern kann,
aber mein ursprüngliches odt weiter geöffnet bleibt.
Alos hoffe ich weiter auf eine Lösung
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 00:49
von Stephan
ist folgendes Vorgehen in OO möglich?
Ja, indem Du ein Makro verwendest und mittels
storeToUrl als xls oder doc speicherst (siehe erster Post im Basic-Forum, dort StarBasic-FAQ)
Gruß
Stephan
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 11:25
von matlat
Danke auch Dir, Stefan
habe das Beispielmakro
Code: Alles auswählen
Sub Speichern
dim dummy()
datei="c:\test2.xls"
dateiurl=converttourl(datei)
odoc=thisComponent
odoc.storeasurl(dateiurl,dummy())
End Sub
direkt mal ausprobiert und das Makro aus meiner ods heraus ausgeführt.
Das Ergebnis ist eine geöffnete xls,
ich möchte aber die Ursprungsdatei geöffnet behalten.
Hoffe also weiterhin
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 12:05
von Stephan
habe das Beispielmakro
Code: Alles auswählen
Sub Speichern
dim dummy()
datei="c:\test2.xls"
dateiurl=converttourl(datei)
odoc=thisComponent
odoc.storeasurl(dateiurl,dummy())
End Sub
direkt mal ausprobiert und das Makro aus meiner ods heraus ausgeführt.
Das Ergebnis ist eine geöffnete xls,
Ja, ich sprach ja auch nicht von store
asurl sondern von store
ToUrl, was ich sogar fett markiert hatte.
Gruß
Stephan
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 12:14
von matlat
Danke,danke
Stephan, Du kannst eindeutig besser lesen als ich.
Lohnt es sich Folgendes weiter zu verfolgen, was ich dann im Basic-Forum machen würde:
Ich möchte beim Makro-Ausführen wählen können, unter welchem Namen und welchem Pfad ich speichere.
Nochmals vielen Dank
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 14:56
von Stephan
Lohnt es sich Folgendes weiter zu verfolgen
ja
Code: Alles auswählen
Sub Speichern()
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter( "Excel (xls)", "*.xls")
dialog.SetMultiselectionMode(False)
ok = dialog.execute()
if ok = 1 Then
datei = dialog.getFiles()
URL = datei(0)
dim dummy()
dateiurl=converttourl(URL)
odoc=thisComponent
odoc.storeTourl(dateiurl,dummy())
end if
End Sub
Was dann noch zu erweitern wäre, um z.B. automatische Typerkennung der gerade aktuellen Datei, etc., etc.
Gruß
Stephan
Re: Speichern im Hintergrund
Verfasst: Mi, 16.04.2008 23:45
von matlat
Danke Stephan,
das sind ja große Aussichten, sich in Makros einzuarbeiten.
Jetzt bin ich aber erst mal zufrieden, dass ich dein Wissen anzapfen konnte,
um meinen Wunsch zu erfüllen.
Es funktioniert wie gewünscht.
Vielen Dank
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Fr, 18.04.2008 11:34
von Stephan
hat jemand eine Idee, was der Grund sein könnte, dass es bei mir nicht geht?
Der von mir gepostete Code war nur sowas wie ein Kontrukt das das prinzipiell notwendige Vorgehen zeigt. Der Code dürfte so wie er dasteht überhaupt nicht funktionieren.
Passieren sollte das eine DAtei erzeugt wird die dem Ausgangstyp entspricht (also z.B. ods, sxw) und an die nur ein xls als Endung angehängt ist.
Gruß
Stephan
Re: Speichern im Hintergrund
Verfasst: Fr, 18.04.2008 13:09
von matlat
Hallo Wolfgang
da hatte ich mich wohl zu früh gefreut und nur das technische Funktionieren beachtet.
Habe im Augenblick aber nicht genug Zeit, um weiter an der Lösung zu arbeiten.
Bis später
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Fr, 18.04.2008 13:58
von Stephan
Ich könnte sowas im Writer sehr gut gebrauchen
das Folgende sollte gehen:
Code: Alles auswählen
Sub Speichern()
odoc=thisComponent
If odoc.supportsService("com.sun.star.text.TextDocument") then
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter("Word (doc)", "*.doc")
dialog.SetMultiselectionMode(False)
ok = dialog.execute()
if ok = 1 Then
datei = dialog.getFiles()
URL = datei(0)
dim dummy(0) as New com.sun.star.beans.PropertyValue
dateiurl=converttourl(URL)
dummy(0).Name = "FilterName"
dummy(0).Value = "MS Word 97"
odoc.storeTourl(dateiurl,dummy())
end if
Else
Msgbox "Das aktuele Dokument ist kein Textdokument"
End If
End Sub
Gruß
Stephan
Re: Speichern im Hintergrund
Verfasst: Fr, 18.04.2008 16:18
von matlat
Hallo Stephan
über diese für mich bequeme Lösung freue ich mich natürlich auch,
perfekt wäre es natürlich, wenn du mir auch noch xls 'schenken' würdest.
Ich kann zwar ahnen, welche Angaben ich im Makro ändern müsste,
aber die genaue Syntax habe ich überhaupt nicht parat.
Schon mal vielen Dank
Wolfgang
Re: Speichern im Hintergrund
Verfasst: Sa, 19.04.2008 01:44
von matlat
Ehe Stephan mir zuvorkommt, hier mein umgearbeitetes Makro, um xls im Hintergrund zu speichern.
Code: Alles auswählen
Sub Speichern_xls()
odoc=thisComponent
If odoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter("Excel (xls)", "*.xls")
dialog.SetMultiselectionMode(False)
ok = dialog.execute()
if ok = 1 Then
datei = dialog.getFiles()
URL = datei(0)
dim dummy(0) as New com.sun.star.beans.PropertyValue
dateiurl=converttourl(URL)
dummy(0).Name = "FilterName"
dummy(0).Value = "MS Excel 97"
odoc.storeTourl(dateiurl,dummy())
end if
Else
Msgbox "Das aktuelle Dokument ist kein Tabellendokument"
End If
End Sub
Wolfgang