Filter beim Speichern

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

Moderator: Moderatoren

erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Filter beim Speichern

Beitrag von erikafuchs »

Hallo zusammen,
ich bräuchte mal wieder Eure Hilfe:
Die Computer im Lehrerzimmer unserer Schule haben jetzt nur noch OpenOffice. Damit die Kollegen die erstellten Dateien zuhause mit Word usw. öffnen können, hat unser Systemadministrator die Ausgabe auf .doc, .xls ...usw eingestellt. Mein Programm "Rechentrainer" läuft nun mal aber nur unter Calc, wird also mit .ods gespeichert. Das Makro, das dies versucht führt aber zu einem Absturz von OpenOffice. Ich nehme an, dass ich hier einen Exportfilter benötige, der das Speichern als .ods Datei erzwingt - Leider habe ich keine Ahnung, wie ich meinen Makrocode ändern muss. Ich habe den Codeteil hier unten eingestellt. Kann mir jemand sagen, wie ich den abändern muss?

Code: Alles auswählen

Dim speicherDialog as Object
Dim datei, kPfad, speichername As String
Speichername="Rechentrainer_Vorname_Nachname.ods"
Dim DialogTyp(0)
Dim arg()
Dim antwort
Dim args1(0) as new com.sun.star.beans.PropertyValue
kPfad = ThisComponent.URL
arg =Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
   speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
   With speicherDialog
        .Initialize(arg())
        .appendFilter("OpenDocument Tabellendokument (.ods)", "*.ods")        
        .SetMultiselectionMode(False)
        .setDisplayDirectory(ConvertToURL(kPfad()))
        .setDefaultName(Speichername)
        .SetTitle("speichern)")        
        .SetValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION, 0, true)
   End With
   antwort = speicherDialog.execute()
   If antwort = 1 Then
      datei = speicherDialog.Files(0)
      Thiscomponent.storeAsUrl(datei, args1())
   End If
Vielen Dank für Eure Hilfe
Pit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Filter beim Speichern

Beitrag von komma4 »

siehe viewtopic.php?f=18&t=16744&p=69849


Kommst Du damit zurecht?
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)
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Filter beim Speichern

Beitrag von erikafuchs »

Lieber Winfried,
vielen Dank schon mal. Ich fürchte, du musst mir helfen. Ich habe mir überlegt, dass ich doch eigentlich gar keinen Filter benötige (vielleicht habe ich aber auch nur keine Vorstellung was der eigentlich macht). Eigentlich müsste ich doch nur verhindern, dass die Datei, wie in diesen Computern voreingestellt, beim Speichern ins Excel Format umgewandelt wird. Ansonsten finde ich in der Liste des Links Importfilter, ich benötige doch einen Exportfilter von calc nach calc oder?
Dank!
Pit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Filter beim Speichern

Beitrag von komma4 »

Die Namen der Importfilter sind die gleichen, wie die Exportfilter :)
Sie bestimmen das Datei-Speicherformat... "hier" bist Du schon richtig.


Und args1 verwendest Du schon, also "nur noch" besetzen:

Code: Alles auswählen

args1.Name = "FilterName"
args1.Value = "calc8"
Klappt das... habe es mal gerade nicht ausprobiert.


Hinweis: in der Basic-Bibliothek ImportWizard steht einiges zu Dokument-Filtern. Nehme meine Extension BTL2 - Basic Text Liste zum "Ausdrucken" aller Basic-Texte in ein Dokument (leichteres Suchen und Lesen).


Viel Erfolg!
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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Filter beim Speichern

Beitrag von komma4 »

komma4 hat geschrieben:

Code: Alles auswählen

args1.Name = "FilterName"
args1.Value = "calc8"
Das ist natürlich falsch, da args1 ein Array ist, ist hier natürlich die Dimension mit anzugeben

Code: Alles auswählen

args1(0).Name = "FilterName"
args1(0).Value = "calc8"
Immer noch nicht ausprobiert!
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)
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Filter beim Speichern

Beitrag von erikafuchs »

Lieber Winfried,
entschuldige dass ich mich so spät melde, ich konnte das jetzt erst ausprobieren. Funktioniert prima! Wiedermal vielen Dank für deine Hilfe!
Grüße
Pit
Antworten