Seite 1 von 1

Filter beim Speichern

Verfasst: Di, 17.08.2010 16:05
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

Re: Filter beim Speichern

Verfasst: Di, 17.08.2010 16:14
von komma4
siehe viewtopic.php?f=18&t=16744&p=69849


Kommst Du damit zurecht?

Re: Filter beim Speichern

Verfasst: Di, 17.08.2010 18:08
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

Re: Filter beim Speichern

Verfasst: Di, 17.08.2010 22:19
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!

Re: Filter beim Speichern

Verfasst: Mi, 18.08.2010 03:10
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!

Re: Filter beim Speichern

Verfasst: Mi, 25.08.2010 17:29
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