Hallo zusammen
Ich bin gerade dabei meine Reports benutzerfreundlicher zu gestalten.
Im Hintergrund erstellen und als Excel oder PDF speichern funktioniert auch tadellos.
Allerding wollte ich es ermöglichen, dass Zielpfad und Dateiname vom Benutzer bestimmt werden können.
Leider scheint es, dass BASE in Formularen nur ein Bedienelement zum öffnen von Dateien zur Verfügung stellt.
Ich könnte da zwar existierende Dateien auswählen, den Pfad auslesen und überschreiben, aber das ist dann doch nicht ganz das gewollte.
Schön wäre es einen Dateidialog zu bekommen der wie bei einem klassischen "Speichern unter" funktioniert.
Formular Dateiauswahl zum Speichern
Moderator: Moderatoren
Formular Dateiauswahl zum Speichern
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
Re: Formular Dateiauswahl zum Speichern
Hi, dies geht z.B.
Gruß R
Code: Alles auswählen
Sub S_Save_as
dim document as object
dim dispatcher as object
Dim aProps(0) as new com.sun.star.beans.PropertyValue
aProps(0).Name = "Hidden"
aProps(0).Value = true
oCalcDoc = StarDesktop.loadComponentFromURL("private:factory/scalc","_blank", 0, aProps)
osheet = oCalcdoc.sheets(0)
ocell = osheet.getcellbyposition(0,0)
ocell.string = "Na, dat klappt doch!"
oFrame = oCalcDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oFrame, ".uno:SaveAs", "", 0, Array())
oCalcDoc.close -1
end Sub
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formular Dateiauswahl zum Speichern
Oh manchmal steht man echt auf dem Schlauch, den uno.Service SaveAs hatte ich eh schon benutzt.
Hatte dem nur Pfad un Filter mitgegeben um das ganze als Excel speichern zu können.
Wenn ich den Pfad raus nehme läuft es auch, allerdings ignoriert er dann den Filter.
Gibt es eine Möglichkeit die Dateitypauswahl vorauszuwählen?
Bei mir sieht der entsprechende Abschnitt aktuell so aus:
Hatte dem nur Pfad un Filter mitgegeben um das ganze als Excel speichern zu können.
Wenn ich den Pfad raus nehme läuft es auch, allerdings ignoriert er dann den Filter.
Gibt es eine Möglichkeit die Dateitypauswahl vorauszuwählen?
Bei mir sieht der entsprechende Abschnitt aktuell so aus:
Code: Alles auswählen
dim pArg(1) as new com.sun.star.beans.PropertyValue
pArg(0).Name = "FilterName"
pArg(0).Value = "MS Excel 97"
oDispatcher.executeDispatch( oFrame, ".uno:SaveAs", "", 0, pArg())
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Formular Dateiauswahl zum Speichern
Sieh' Dir doch mal die Funktion StoreDocument in der Bibliothek Tools Deiner Standard-Installation an.
Wird zwar nicht mit UNO gearbeitet - funktioniert aber gut (auch mit Filter)
Wird zwar nicht mit UNO gearbeitet - funktioniert aber gut (auch mit Filter)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Formular Dateiauswahl zum Speichern
Danke für den Tip, leider bekomm ich es aber nicht ans Laufen.
Folgender Aufruf:
In StoreDocument taucht dann an folgender Stelle der Fehler "Objektvariable nicht belegt" auf:
Im Beobachter sind allerdings beide belegt.
EDIT: Auch wenn ich die URL mit ConvertFromURL umwandle bleibt der Fehler.
Irgendeine Idee?
Folgender Aufruf:
Code: Alles auswählen
sPath = replace( oDocument.URL, oDocument.Title, "")
Tools.ModuleControls.storeDocument( oDocument, Array("MS Excel 97"), ReportName, sPath)
Code: Alles auswählen
AddFiltersToDialog(FilterNames(), oStoreDialog)
EDIT: Auch wenn ich die URL mit ConvertFromURL umwandle bleibt der Fehler.
Irgendeine Idee?
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"