Namen für Filter Tabellenvorlage

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

Moderator: Moderatoren

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

Namen für Filter Tabellenvorlage

Beitrag von erikafuchs »

Hallo zusammen,
ich habe schon wieder eine Frage:
ich möchte, je nach Anwendung, eine Datei wahlweise als "ods" oder "ots" datei speichern

Code: Alles auswählen

Sub SpeichernUnter
    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()))
        if testmodus="" then
           .SetDefaultName("Rechentrainer" & Testmodus & " " & vorname & " " & nachname & " " & version)
           .setcurrentFilter("OpenDocument Tabellendokument (.ods)")             
        else
           .SetDefaultName("RechentrainerTest"
           .setcurrentFilter("OpenDocument Tabellenvorlage (.ots)")
        end if                        
        .SetTitle("Wähle den Ordner in dem du deine Datei speichern willst (Dateiname bitte nicht ändern)")

        .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
End Sub
Die Zeile " .setcurrentFilter("OpenDocument Tabellenvorlage (.ots)")" wird nicht akkzeptiert. Es erfolgt die Meldung "...filter doesn´t exist". Ihr wisst doch sicher was da falsch ist.
Viele Grüße
Pit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Namen für Filter Tabellenvorlage

Beitrag von komma4 »

also, in meinem 2.3.1-Dialog heisst der Filter:


OpenDocument Tabellendokumentvorlage (*.ots)



War es das schon?
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: Namen für Filter Tabellenvorlage

Beitrag von erikafuchs »

Lieber Wilfried,

leider war es das nicht. Mein Problem ist wahrscheinlich, dass ich keine Ahnung habe, wie dieser Code überhaupt funktioniert. Beim Speichern als .ods Datei klappt das einwandfrei, leider habe ich keine Ahnung, was der Filter überhaupt macht.

Grüße
Pit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Namen für Filter Tabellenvorlage

Beitrag von komma4 »

Pit,
... der Code, besser: die Anweisung setCurrentFilter() setzt im Dialog den gewählten Filter.


Beim Stöbern im englischen Forum fand ich kein Beispiel mit Vorlagen, aber andere, die ähnlich wie meine gepostete Zeile, aber ohne Stern aussehen, also:

OpenDocument Tabellendokumentvorlage (.ots)


vielleicht?
Sorry - habe nicht damit gearbeitet - ich taste [auch?] im Dunkeln ;-)


Versuche doch auch mal die .setCurrentFilter()-Anweisung weg zu lassen.... was passiert dann?
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)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Namen für Filter Tabellenvorlage

Beitrag von Stephan »

Ihr wisst doch sicher was da falsch ist.
Du kannst keinen Filter als Vorgabe setzen wenn der Filter in der Gruppe aller Filter garnicht existiert. Existieren tut aber nur ein einziger Filter, nämlich *.ods:

Code: Alles auswählen

.appendFilter("OpenDocument Tabellendokument (.ods)", "*.ods")
weise also den anderen Filter zunächst analog zu:

Code: Alles auswählen

.appendFilter("OpenDocument Tabellenvorlage (.ots)", "*.ots")
um ihn dann im zweiten Schritt als Vorgabe zu wählen.

also, in meinem 2.3.1-Dialog heisst der Filter:


OpenDocument Tabellendokumentvorlage (*.ots)
wie die Filter heißen ist völlig egal, Hauptsache die Dateiendung (zweiter Parameter) stimmt und beim Aufruf als Vorgabe wird derselbe Name wie einmal zugewiesen verwendet, es geht also beispielsweise:

Code: Alles auswählen

.appendFilter("So ein Quatsch (.blah)", "*.ots")
'...
.setcurrentFilter("So ein Quatsch (.blah)")


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

Re: Namen für Filter Tabellenvorlage

Beitrag von erikafuchs »

Lieber Staephan,
vielen Dank. Ich hatte ja zwischenzeitlich auch diese "append" Anweisung gefunden und mit ihr rumexperimentiert. Wahrscheinlich habe ich mich mal wieder vertippt, das hat nicht geklappt. Deine Hinweise haben mir aber prinzipiell weiterhgeholfen! Ich habe einfach an den Namen der zu speichernden Datei ".ots" drangehängt - das scheint auch zu funktionieren.
Dank und Grüße
Pit
Antworten