Verhindern das ein Dokument geschlossen wird

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

Moderator: Moderatoren

Mandalor
*
Beiträge: 16
Registriert: Mi, 12.01.2005 13:01
Wohnort: Gohrisch

Verhindern das ein Dokument geschlossen wird

Beitrag von Mandalor »

Hallo,

ich habe ein Macro, welches bei einem Event (Document Close) einen eigenen Speicherdialog erzeugt. Funktioniert, wenn dieser jedoch abgebrochen wird, möchte ich nicht, dass das Dokument geschlossen wird. Wie kann ich Opeboffice das beispringen. Normalerweise hat eine function einen Rückgabewert, dem programm sagt, dass das Ereignis abgebrochen werden soll, bei OO habe ich hierzu aber leider nichts gefunden.

Hbt ihr eine Idee?

MfG

Markus
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Verhindern das ein Dokument geschlossen wird

Beitrag von turtle47 »

Hallo Markus,
Mandalor hat geschrieben:ich habe ein Macro, welches bei einem Event (Document Close) einen eigenen Speicherdialog erzeugt.
Du muss den umgekehrten Weg gehen. Zuerst den Speichern-Dialog erzeugen und dann nach dem speichern das Dokument schliessen.

Hier mal ein Beispiel für ein Calc-Dokument:

Code: Alles auswählen

Sub SpeichernUnter
Dim speicherDialog as Object
Dim dateiname As String
Dim DialogTyp(0)
Dim arg()
Dim antwort
Dim args1(0) as new com.sun.star.beans.PropertyValue

   kPfad = ThisComponent.URL
   sPfad = convertToURL("C:\")

   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(sPfad()))
        .SetTitle("Tabellendokument speichern")
        .setcurrentFilter("OpenDocument Tabellendokument (.ods)")
        .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())
      Thiscomponent.close (true) 'Dokument wird geschlossen
   End If
End Sub
Hilft das weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten