Seite 1 von 2
Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Di 11. Dez 2012, 15:42
von toni007
Hallo zusammen,
wir arbeiten z. Zt. mit Ubuntu 10.4 und OO 3.2.
Demnächst wechseln wir auf Ubuntu 12.04 mit LibreOffice 3.5.4.2.
In meiner Anwendung öffne aus einer Calc-Datei eine weitere Calc-Datei und schließe die aufrufende Datei dann wieder. Beides passiert in einem Makro, dass an das Ereignis 'Dokument öffnen' gebunden ist.
Es ist dann nur noch die aufgerufene Datei offen.
Unter OO 3.2 hat das immer einwandfrei geklappt. Unter LO 3.5 schmiert der LO-Prozess ab (falls ein weiteres LO-Dokument oder die IDE offen ist, klappt es übrigens).
Ich habe es mit
und
Code: Alles auswählen
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:CloseDoc", "", 0, Array())
beide klappt unter LO3.5 nicht.
Aus dem Terminal heraus gestartet, gibt es auch eine Fehlermeldung, mit der ich allerdings nichts anfangen kann:
soffice.bin: tpp.c:63: __pthread_tpp_change_priority: Zusicherung >>new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)<< nicht erfüllt.
Wann hat sich das Verhalten geändert, erst mit LO oder auch schon unter OO >3.2?
Ist es ein Bug oder hat die Änderung einen Grund?
Kann ich die Funktionalität auch anders erreichen?
Ich habe mal zwei Dateien angehängt, mit denen man das Verhalten nachstellen kann.
Gruß
Thomas
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Di 11. Dez 2012, 20:10
von F3K Total
Hallo,
ich glaube unter LO sind die Dispatcher-Befehle standardmäßig ausgeschaltet, einschalten geht über Extras/Optionen/LibreOffice->allgemein.
Ich würde sie nicht mehr verwenden, hatte selbst große Probleme damit.
Dein Makro läuft bei mir, unter Linux Mint, wenn es so geändert wird:
Code: Alles auswählen
Sub Main
Call Einstieg
ThisComponent.Close(True)
End Sub
Viel Erfolg, Gruß R
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Mi 12. Dez 2012, 00:20
von gogo
Hi.
In welchem Modul steht das Close-Makro? Es funktioniert nur dann "richtig", wenn es ausserhalb des Dokumentes das gerade aktiv ist gespeichert ist, ansonsten kommt es zu einem Konflikt zwischen der Close Methode und dem Modul in dem sich das Makro befindet.
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Mi 12. Dez 2012, 05:27
von F3K Total
gogo hat geschrieben:Es funktioniert nur dann "richtig", wenn es ausserhalb des Dokumentes das gerade aktiv ist
...
Moin gogo,
das stimmt leider nicht. Anbei ein Beispiel.
Gruß R
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Mi 12. Dez 2012, 17:27
von gogo
Jep, bei Standalone-Dokumenten - bei Base-Dateien wuerde ich die Finger davon lassen.
Statt dem Makro mit einem kalten Kill wuerde ich persoenlich dem Button die Eigenschaft "Open document/webpage" zuweisen, und den uno-Befehl: .uno:closedoc verwenden. Das entspricht dem Befehl ueber das Menue und ist plattformunabhaengig ein sehr sauberes Schliessen (und spart Code

Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Do 13. Dez 2012, 11:35
von toni007
Hallo R,
bei mir schmiert LO weiterhin ab, wenn auch manchmal erst nach dem zweiten Starten der Datei.
Ubuntu wirft dann folgenden Fehler raus:
Entschuldigung, Ubuntu 12.04 hat einen internen Fehler festgestellt.
Wie gesagt, wenn der LO-Prozess bereits gestartet ist (d.h. ein anderes LO-Dokument oder die IDE geöffnet ist) gibt es keine Probleme.
Gruß
Thomas
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Sa 24. Jan 2015, 09:27
von paulderfinne
Darf ich mich hier mit anhängen. Ich habe auch ein (das gleiche?) Schließenproblem. Ich habe ein Template, an dem ein Makro höngt, das ich einfach schließen will. Aber irgendwie bleibt da noch was offen. Wenn ich das von der Bash aus startet, hängt die Bash nach dem Schließen und ich muss das mit ctr+c abbrechen. In Wirklichkeit aber rufe ich das Template von einem ganz anderen Programm auf zu dem es dann nicht mehr zurückkehrt. Das Problem anders anzugehen, wie in einigen Foren vorgeschlagen, scheinen alle auf eine "Objektvariable nicht definiert" zu führen. (Wie in dem auskommentierten Teil).
Ich überlege schon, ob ich auf einen harten "killall" über die Bash gehe, aber das ist natürlich nicht sehr schön. Hat jemand eine Idee?
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: Sa 24. Jan 2015, 13:41
von paulderfinne
Jetzt bin ich es selber nochmal: Versuche ich die Schließung per shell("killall usw..) schließt die Anwendung logoscherweise, ich habe sie ja "umgebracht". Beim nächsten Öffnen, meckert LO aber, dass die Datei "Unbenannt" nicht ordentlich abgeschlossen wurde. (Was ja auch stimmt). Kann ich diese Prüfung irgendwie umgehen?
Es muss aber doch auch möglich sein, dasselbe per Makro zu tun, was ,man auch tut wenn man die Datei händisch schließt.
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: So 25. Jan 2015, 09:13
von paulderfinne
Hallo liebe Gemeinde,
hat keiner eien Idee? Drücke ich mich zu nebulös aus? Ich denke im Prinzip geht es darum, das komplette Programm LibreOffice ganz schließen und nicht nur das Fenster. Wenn ich per Makro mit thiscomponent.close() schließe, ist das Programm noh offen. Ein ps uax gibt u.a folgenden Zeilen:
- paul 5653 0.0 0.5 32600 5212 pts/2 Sl+ 08:52 0:00 /usr/lib/libreoffice/program/oosplash schliessen_test.ott
paul 5670 0.3 12.2 223120 125452 pts/2 Sl+ 08:52 0:03 /usr/lib/libreoffice/program/soffice.bin schliessen_test.ott -
Erst ein strg+c von der Shell aus wo LibreOffoce gestartet wurde beendet das Programm. Das sollte aber vom Makro aus gelingen.
Re: Unterschiedliches Verhalten beim Schließen von Dateien
Verfasst: So 25. Jan 2015, 12:18
von F3K Total
Hi,
Vielleicht hilft dir der Suchbegriff
Gruß R