🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Speichern eines Dokuments abbrechen

Alles zur Programmierung im LibreOffice.
Antworten
Heike
Beiträge: 1
Registriert: Mi 17. Aug 2016, 10:35

Speichern eines Dokuments abbrechen

Beitrag von Heike » Mi 17. Aug 2016, 11:04

Hallo Community,

ich möchte mit einem Makro verhindern, dass ein Dokument gespeichert wird, wenn bestimmte Voraussetzungen nicht erfüllt sind.
"Speichern unter" ist immer erlaubt.
Dazu habe ich zuerst eine Function geschrieben und an das Ereignis "Dokument speichern" gebunden:

1. Ansatz, der nicht functioniert: Die Function gibt false zurück, wenn meine Bedingung nicht erfüllt ist. (habe ich mal in einem anderen Forum gefunden)

Code: Alles auswählen

function onsave
	if Bedingung=false then
		onsave=false
	else 
		onsave =true
	endif
end function
2. Ansatz, der letzendlich auch nicht funktioniert

Code: Alles auswählen

function onsave(oEvent as object)
	dim oDoc as object
	oDoc=oEvent.Source
	if Bedingung=false then
		oEvent.Source.disableSetModified()	
	end if
end function
Mit oEvent.Source.disableSetModified() erreiche ich zwar, dass das Dokument zunächst nicht gespeichert wird.
Wenn man dann das Dokument schließt, erscheint der Hinweis, dass das Dokument nicht gespeichert ist und man erhält die übliche Abfrage "Speichern" "Nicht speichern" und "Abbrechen". Klickt man jetzt auf "Speichern" wird wieder das Ereignis "Dokument speichern" ausgelöst und das Makro "onsave" aufgerufen. Trotzdem wird das Dokument gespeichert, auch wenn die Bedingung nicht erfüllt wird.

Was gibt es für Möglichkeiten, die Ereignisse "Dokument speichern" und "Dokument wird geschlossen" abzubrechen?

Vielen Dank und schöne Grüße
Heike

Makromador
Beiträge: 10
Registriert: Fr 18. Dez 2015, 13:01
Kontaktdaten:

Re: Speichern eines Dokuments abbrechen

Beitrag von Makromador » Mo 19. Sep 2016, 20:19

Hallo Heike,

das kann Dich möglicherweise weiterbringen: Im OOME gibt es ein Kapitel über Dokument schließen: 13.8. Ein Dokument schließen: XCloseable

hier findest Du die API-Beschreibung: http://api.libreoffice.org/docs/idl/ref ... 1util.html

Dokument speichern könntest Du möglicherweise über den Dispatcher abfangen (?), hab ich jedoch nicht ausprobiert.

Was ich grad noch entdeckt habe: es gibt einen XTopWindowListener: http://api.libreoffice.org/docs/idl/ref ... tener.html

Den musst Du wahrscheinlich an den aktuellen Frame binden. Siehe hierzu Kapitel 12. StarDesktop
in OOME. Das sollte dann eigentlich funktionieren. Wäre schön wenn Du die Lösung ebenfalls postest.

Besser mit xray das Frame-Objekt erst noch untersuchen, ob das Interface bereits enthalten ist.

viele Grüße

makromador


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten