"Datei schließen" mittels Makro [solved]
Moderator: Moderatoren
"Datei schließen" mittels Makro [solved]
Hallo!
Hat jemand eine Idee, wie der Vorgang "Datei schließen" mittels eines Makros realisiert werden kann. Ich suche seit 2 Tagen im Netz nach einer Lösung und finde keine, so dass ich den Verdacht habe, dass dies gar nicht möglich ist.
OOo-Version: 3.1
OS: Windows XP
OOo-Komponente: Base
Problem:
Ich möchte Base mittels eines Makro beenden, so dass der "Hauptbildschirm" von OOo noch offen ist. Mit "Hauptbildschirm" von OOo meine ich den Bildschirm, der erscheint, wenn man OOo ohne irgendwelche Zusätze startet.
Das Beenden von Formularen etc. per Makro ist kein Problem.
Ich schaffe es jedoch nicht, den "Hauptbildschirm" von OOoBase zu beenden. Mit "Hauptbildschirm" von OOoBase meine ich den Bildschirm, der erscheint, alle Formulare, Tabellen etc. geschlossen sind.
Der Befehl "close" beendet OOo komplett.
Ich habe schon sehr viele Möglichkeiten getetest, die alle aber entwender den "Hauptbildschirm" von OOoBase nicht beenden oder OOo komplett schließen.
Es folgen stichpunktartig ein paar Ansätze von mir (programmiertechnisch natürlich Quatsch):
oController = ThisDatabaseDocument.CurrentController
oController.closeSubComponents
ThisDocument.close
oController = ThisDatabaseDocument.CurrentController.close
oController = ThisDatabaseDocument.CurrentController
oController.closeThisComponent
oDoc = ThisDocument
oDoc.close(True)
oDoc = ThisDatabaseDocument
oDoc = thisComponent.CurrentController.frame
oController = ThisDatabaseDocument.ThisComponent
oController.closeThisComponent
oDialog.endexecute()
ThisComponent.dispose()
oDoc.close(True)
ThisComponent.close(true)
oController = ThisDatabaseDocument.CurrentController
oController.closeSubComponents
odoc=thisComponent
odoc.close(true) rem eingefügt
checkclose=odoc.ismodified()
if checkclose=false then
odoc.close(false)
else
msgbox "Dokument wurde geändert"
end if
define variables
dim document as object
dim dispatcher as object
get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "UnderlineDouble"
args4(0).Value = true
dispatcher.executeDispatch(document, ".uno:UnderlineDouble", "", 0, args4())
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:closeWin", "", 0, Array())
Gruß
Jochen
Hat jemand eine Idee, wie der Vorgang "Datei schließen" mittels eines Makros realisiert werden kann. Ich suche seit 2 Tagen im Netz nach einer Lösung und finde keine, so dass ich den Verdacht habe, dass dies gar nicht möglich ist.
OOo-Version: 3.1
OS: Windows XP
OOo-Komponente: Base
Problem:
Ich möchte Base mittels eines Makro beenden, so dass der "Hauptbildschirm" von OOo noch offen ist. Mit "Hauptbildschirm" von OOo meine ich den Bildschirm, der erscheint, wenn man OOo ohne irgendwelche Zusätze startet.
Das Beenden von Formularen etc. per Makro ist kein Problem.
Ich schaffe es jedoch nicht, den "Hauptbildschirm" von OOoBase zu beenden. Mit "Hauptbildschirm" von OOoBase meine ich den Bildschirm, der erscheint, alle Formulare, Tabellen etc. geschlossen sind.
Der Befehl "close" beendet OOo komplett.
Ich habe schon sehr viele Möglichkeiten getetest, die alle aber entwender den "Hauptbildschirm" von OOoBase nicht beenden oder OOo komplett schließen.
Es folgen stichpunktartig ein paar Ansätze von mir (programmiertechnisch natürlich Quatsch):
oController = ThisDatabaseDocument.CurrentController
oController.closeSubComponents
ThisDocument.close
oController = ThisDatabaseDocument.CurrentController.close
oController = ThisDatabaseDocument.CurrentController
oController.closeThisComponent
oDoc = ThisDocument
oDoc.close(True)
oDoc = ThisDatabaseDocument
oDoc = thisComponent.CurrentController.frame
oController = ThisDatabaseDocument.ThisComponent
oController.closeThisComponent
oDialog.endexecute()
ThisComponent.dispose()
oDoc.close(True)
ThisComponent.close(true)
oController = ThisDatabaseDocument.CurrentController
oController.closeSubComponents
odoc=thisComponent
odoc.close(true) rem eingefügt
checkclose=odoc.ismodified()
if checkclose=false then
odoc.close(false)
else
msgbox "Dokument wurde geändert"
end if
define variables
dim document as object
dim dispatcher as object
get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "UnderlineDouble"
args4(0).Value = true
dispatcher.executeDispatch(document, ".uno:UnderlineDouble", "", 0, args4())
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:closeWin", "", 0, Array())
Gruß
Jochen
Zuletzt geändert von uroveits am Mi, 26.05.2010 19:47, insgesamt 2-mal geändert.
Re: "Datei schließen" mittels Makro
der Verdacht ist richtig, unter den umrissenen Randbedingungen ist das was du willst nicht möglich, wird per Code das letzte Dokumentfenster geschlossen schließt sich automatisch die komplette OOo-Anwendung.so dass ich den Verdacht habe, dass dies gar nicht möglich ist
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Hallo Jason,
die Idee mit einer Shell ist zu diskutieren. Zwei Punkte dazu fallen mir spontan ein:
1) hast Du einen Vorschlag, wie konkret das mit der "Shell" realisiert werden kann?
2) prinzipiell muss überlegt werden, ob es sinvoll ist, diesen Weg zu beschreiten (erst Programm beenden und dann wieder starten). Ich hatte erwartet, dass "Datei schließen" mittels Makro in OOo bzw. OOoBase möglich ist. Vielleicht ist ein Issue sinnvoll?!
Gruß
Jochen
die Idee mit einer Shell ist zu diskutieren. Zwei Punkte dazu fallen mir spontan ein:
1) hast Du einen Vorschlag, wie konkret das mit der "Shell" realisiert werden kann?
2) prinzipiell muss überlegt werden, ob es sinvoll ist, diesen Weg zu beschreiten (erst Programm beenden und dann wieder starten). Ich hatte erwartet, dass "Datei schließen" mittels Makro in OOo bzw. OOoBase möglich ist. Vielleicht ist ein Issue sinnvoll?!
Gruß
Jochen
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
weiß ich jetzt nicht was damit gemeint ist.Sorry für meinen unqualifizierten Kommentar
Ja, sicher, nur war es doch nicht die FRage wie man das Programm schließt und wieder öffnet.Könnte man damit nicht Oo schließen und sofort wieder (mit dem "Hauptbildschirm") starten?
Der Grund das auch nicht einmal als workaround vorzuschlagen ist für mich ganz einfach der das die 'optische Erscheinung' gänzlich unbefriedigend sein wird weil immer erst das Neustarten deutlich sichtbar wäre, auch wäre das Ganze wohl deshalb nicht so leicht zu realisieren, weil man zwecks Neustarten die Kontrolle z.B. an eine batch-Datei übergeben müßte, aber nicht sicher weiß wie lange OOo zum Schließen braucht, man also blindlinks eine Pause einlegen müßte vor dem Neustart, da ein nochmaliges Starten von OOo, wärenddessen eine Instanz noch läuft, zusätzliche Schwierigkeiten verursachen würde.
insgesamt:
ich bin natürlich offen für Alternativvorschläge, für die Diskussion davon ist ja hier da Forum auch da, aber mir ist nichts wirklich Funktionierendes bekannt, was ohne quasi externe Programmierung auskäme und gleichzeitig vernünftig funktioniert.
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Na das ist doch trivial, einfach mit Basic eine Textdatei mit entsprechenden Befehlen füllen, als *.bat speichern und starten.1) hast Du einen Vorschlag, wie konkret das mit der "Shell" realisiert werden kann?
meines Erachtens nicht, schon allein weil ich nicht sehe wie auf einfache WEise bestimmt werden kann wann das Schliessen von OOo beendet ist. Praktisch liefe das darauf hinaus das die Batch sekundenlang warten müßte, was zu einem ganz schlechten 'optischen' Eindruck bzw. Ergonomie führt und man dann im Zweifel immerr noch nicht sicher wäre ob man OOo nicht noch in zweiter Instanz startet.2) prinzipiell muss überlegt werden, ob es sinvoll ist, diesen Weg zu beschreiten
Ich kann nur nochmal betonen das ich gerne beereit bin alle zu diskutieren, nur ich habe keinen Vorschlag den ich für funktionell ausreichend ode sinnvoll ansehen würde.
ja, sicher - einzig hilft der nicht kurzfristig.Vielleicht ist ein Issue sinnvoll?!
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Hallo Zusammen,
ich habe mal folgendes gemacht:
Dieses Python-Script habe ich mit den Ereignisssen "Dokument schliessen" und "Dokument wird geschlossen" verknüpft:
Das Script ist bei mir abgelegt unter:
Die Datenbank selbst habe ich geschlossen mit:
Man sollte aber bedenken, dass wenn noch eine andere Instanz, z.B. Writer oder Calc läuft, diese Anwendung in den Vordergrund kommt und nicht das Startfenster.
Im Taskmanger konnte ich keine doppelten Einträge von "soffice.bin" oder "soffice.exe" ausmachen, aaaber die "sbase.exe" bleibt leider hängen.
Vielleicht kann man das aber noch mit einem anderen "Close-Befehl" eliminieren. Das noch zu testen ist es mir jetzt zu spät, äh früh.
Die "sbase.exe" wird aber gelöscht, wenn OO.o komplett beendet wird.
Somit hat also Stephan Recht wenn er sagt:
Viel Erfolg.
Jürgen
ich habe mal folgendes gemacht:
Dieses Python-Script habe ich mit den Ereignisssen "Dokument schliessen" und "Dokument wird geschlossen" verknüpft:
Code: Alles auswählen
# -*- coding: cp1252 -*-
# Start OpenOffice python script
import os
import time
def StartOpenOffice( cmd ):
"""Start Open Office(in Python)"""
#time.sleep(0.5) #Diese Zeitverzögerung kann zum Starten noch vorgegeben werden
os.system("START soffice.exe")
Code: Alles auswählen
C:\Program Files (x86)\OpenOffice.org 3\Basis\share\Scripts\python
Code: Alles auswählen
oDoc = ThisComponent
oDoc.close(true)
Im Taskmanger konnte ich keine doppelten Einträge von "soffice.bin" oder "soffice.exe" ausmachen, aaaber die "sbase.exe" bleibt leider hängen.
Vielleicht kann man das aber noch mit einem anderen "Close-Befehl" eliminieren. Das noch zu testen ist es mir jetzt zu spät, äh früh.
Die "sbase.exe" wird aber gelöscht, wenn OO.o komplett beendet wird.
Somit hat also Stephan Recht wenn er sagt:
Ich hänge die Datei mit dem Script mal an. Weil man hier keine ".py" Dateien einstellen kann, einfach das ".zip" im Dateinamen löschen!Stephan hat geschrieben:mir ist nichts wirklich Funktionierendes bekannt, was ohne quasi externe Programmierung auskäme und gleichzeitig vernünftig funktioniert.
Viel Erfolg.
Jürgen
- Dateianhänge
-
- startooo.py.zip
- Dieses ist keine gepackte Datei!
.zip in der Dateiendung entfernen! - (262 Bytes) 105-mal heruntergeladen
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
das ist eine prima Anregung sofern es mich darauf bringt das eine batch-Datei garnicht nötig ist, sondern ein einzeiliges Makro reichen sollte:ich habe mal folgendes gemacht: [...]
Code: Alles auswählen
Shell("C:\Programme\OpenOffice.org 3\program\soffice.exe",1)
Vielleicht darf ich das nochmal versuchen klarer zu sagen:Im Taskmanger konnte ich keine doppelten Einträge von "soffice.bin" oder "soffice.exe" ausmachen, aaaber die "sbase.exe" bleibt leider hängen.
Vielleicht kann man das aber noch mit einem anderen "Close-Befehl" eliminieren.
sofern du das zu laufen bekommst wäre es interessant das zu diskutieren
Somit hat also Stephan Recht wenn er sagt:
ich traue der Robustheit jeglicher Implementierung an dieser Stelle nicht, wenn Du jetzt schreibst das sbase.exe hängen bleibt ist das z.B. eine solche Stelle wo ich mich frage ob das immer, unter völlig beliebigen Bedingungen, reproduzierbar ist.
Aus meiner Erfahrung kann ich nur sagen das ich eben keine verlässliche Lösung kenne, wobei ich allgemeine die Ursache darin sehe das sich das Programm in verschiedenen Situationen verschieden beim Schliessen verhält, selbst beim Schliessen ein und desselben Dokuments, können abhängig von Begleitumständen völlig verschiedene Schließzeiten auftreten, was auch kein reines Zeitproblem ist.
anders gesagt:
ich würde alles das niemals nutzen wenn ich etwas beruflich programmiere, weil mir das zu unsicher wäre (=zu wenig robust bezüglich der Implementierung).
Müßte ich das was hier zur Debatte steht lösen, könnte ich das mit externer Programmierung tun (also kurz vor dem Beenden der Base-Datei ein externes Programm starten, welches den weiteren Ablauf dann unabhängig von OOo kontrolliert), was ich viel zu aufwändig fände oder, und so wäre hier wohl mein Vorschlag, ich würde mich darauf besinnen was überhaupt erreicht werden soll und da sehe ich eigentlich nur das das 'Startfenster' von OOo nach Schließen der Datenbank sichtbar sein soll.
Deshalb würde ich dieses Startfenster (genauer gesagt den 'Dialog' innerhalb des Startfensters) in Basic nachbauen und dann statt nur Schließen der Datenbank, vorher ein leeres Dokument versteckt öffnen, dann die Datenbank schließen und dann den Dialog anzeigen.
Alles das ist einfach und vor allem verlässlich implementierbar und von der ursprünglich geforderten Lösung kaum abweichend, außer das der Dialog nicht vor den Hintergrund der leeren OOO-Anwendung, sondern alleinstehend dargestellt würde.
Sorry, für diese etwas langatmigen Ausführungen, aber kürzer konnte ich das nicht ausdrücken.
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Hallo Stephan,
Aber ich sehe das immer unter der Premisse: "Versuch macht klug".
Und wenn Jochen möchte, dann kann er ja noch ein wenig damit experimentieren.
Ich versuche auch nicht Jochen auf eine falsche Fährte zu locken sondern habe auf die noch vorhandenen Probleme hingewiesen.
Für mich selbst war es jedenfalls sehr lehrreich da ich mich erst seit dem Wochenende mit Python beschäftige.
Somit verbuche das Implementieren eines Python-Skripst in OO.o als vollen Erfolg auch wenn Du das vielleicht anders siehst.
Jürgen
Der Nachteil dabei ist, dass man in diesem Fall den genauen Pfad angeben muss hingegen das Skript diesen alleine findet.Stephan hat geschrieben:das ist eine prima Anregung sofern es mich darauf bringt das eine batch-Datei garnicht nötig ist, sondern ein einzeiliges Makro reichen sollte:
Code: Alles auswählen
Shell("C:\Programme\OpenOffice.org 3\program\soffice.exe",1)
Code: Alles auswählen
os.system("START soffice.exe")
Danke für die nochmals ausführliche Erläuterung aber ich hatte den anderen Posts schon entnommen was Du genau gemeint hast.Stephan hat geschrieben: Sorry, für diese etwas langatmigen Ausführungen, aber kürzer konnte ich das nicht ausdrücken.
Aber ich sehe das immer unter der Premisse: "Versuch macht klug".
Und wenn Jochen möchte, dann kann er ja noch ein wenig damit experimentieren.
Ich versuche auch nicht Jochen auf eine falsche Fährte zu locken sondern habe auf die noch vorhandenen Probleme hingewiesen.
Für mich selbst war es jedenfalls sehr lehrreich da ich mich erst seit dem Wochenende mit Python beschäftige.
Somit verbuche das Implementieren eines Python-Skripst in OO.o als vollen Erfolg auch wenn Du das vielleicht anders siehst.
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
ich hatte zugegeben den genauen Pfad verwendet, allerdings funktioniert:Der Nachteil dabei ist, dass man in diesem Fall den genauen Pfad angeben muss
Code: Alles auswählen
Shell("soffice.exe",1)
Ansonsten müßte man den nötigen Pfad über:
http://api.openoffice.org/docs/common/r ... ution.html
ermitteln.
Somit verbuche das Implementieren eines Python-Skripst in OO.o als vollen Erfolg auch wenn Du das vielleicht anders siehst.
Nein, tue ich nicht.
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Hallo Stephan,
ich habe jetzt mal folgendes Szenario durchgespielt:
1. DB gestartet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
2. Writer gestartet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
Es wird also keine swriter.exe *32 dem Taskmanager hinzugefügt
3. DB normal beendet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
Es steht immer noch die sbase.bin *32 im Taskmanager obwohl schon beendet aber Writer noch offen
4. Writer beendet > Keine Prozesse mehr von OO.o im Taskmanager zu sehen.
Für mich stellt sich das jetzt so dar, dass der erste gestartete OO.o-Prozess für alle folgenden OO.o Anwendungen steht.
Die Testumgebung kannst Du der Signatur entnehmen.
Nun gut, wieder eine neue Erkenntniss gewonnen. Danke.
Wenn man sich also beim Schliessen der DB mittels "Shell("soffice.exe",1)" den Startbildschirm auf die Oberfläche holt und im Taskmmanger
immer noch "sbase.exe *32" steht dürfte das kein Problem sein welches das System nachteilig beeinflusst.
Jürgen
ich habe jetzt mal folgendes Szenario durchgespielt:
1. DB gestartet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
2. Writer gestartet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
Es wird also keine swriter.exe *32 dem Taskmanager hinzugefügt
3. DB normal beendet > Im Taskmanager stehen soffice.exe *32; soffice.bin *32 und sbase.exe *32; Prozesse 78
Es steht immer noch die sbase.bin *32 im Taskmanager obwohl schon beendet aber Writer noch offen
4. Writer beendet > Keine Prozesse mehr von OO.o im Taskmanager zu sehen.
Für mich stellt sich das jetzt so dar, dass der erste gestartete OO.o-Prozess für alle folgenden OO.o Anwendungen steht.
Die Testumgebung kannst Du der Signatur entnehmen.
Das hätte ich jetzt nicht gedacht, weil ich irgendwo mal gelesen hatte das beim Schliessen eines Dokumentes die Makros "abgewürgt" werden.Stephan hat geschrieben:ich hatte zugegeben den genauen Pfad verwendet, allerdings funktioniert:
Shell("soffice.exe",1)
Nun gut, wieder eine neue Erkenntniss gewonnen. Danke.
Wenn man sich also beim Schliessen der DB mittels "Shell("soffice.exe",1)" den Startbildschirm auf die Oberfläche holt und im Taskmmanger
immer noch "sbase.exe *32" steht dürfte das kein Problem sein welches das System nachteilig beeinflusst.
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: "Datei schließen" mittels Makro [solved: nicht möglich]
Hallo Jürgen,
Ok, danke fürs durchprobieren.
Ansonsten, kann ich aber nicht mehr sagen denn an Deinem Lösungsvorschlag habe ich ohnehin nichts zu kritisieren, auch kann ich keinen Besseren angeben und trotzdem stehe ich der Robustheit des Ganzen krtisch gegenüber und in diesem allgemeinen Sinne hatte ich ja von Anfang an argumentiert (selbst als mir Dein Code-Vorschlag im Konkreten noch garnicht bekannt war).
Es spricht jetzt überhaupt nichts dagegen wenn Du meine Bedenken nicht teilst, denn ich habe ja nichts was ich konkret belegbar kritisiere.
Ich kann das auch nüchtern sagen:
meine Erfahrung sagt mir das das Ganze nicht robust ist, ohne das ich Dir ein Testszenario nennen kann unter dem der Code versagt, ich treffe hier also letztlich nur Behauptungen ohne sie beweisen zu können - ich räume das offen ein.
Gruß
Stephan
Ok, danke fürs durchprobieren.
Ansonsten, kann ich aber nicht mehr sagen denn an Deinem Lösungsvorschlag habe ich ohnehin nichts zu kritisieren, auch kann ich keinen Besseren angeben und trotzdem stehe ich der Robustheit des Ganzen krtisch gegenüber und in diesem allgemeinen Sinne hatte ich ja von Anfang an argumentiert (selbst als mir Dein Code-Vorschlag im Konkreten noch garnicht bekannt war).
Es spricht jetzt überhaupt nichts dagegen wenn Du meine Bedenken nicht teilst, denn ich habe ja nichts was ich konkret belegbar kritisiere.
Ich kann das auch nüchtern sagen:
meine Erfahrung sagt mir das das Ganze nicht robust ist, ohne das ich Dir ein Testszenario nennen kann unter dem der Code versagt, ich treffe hier also letztlich nur Behauptungen ohne sie beweisen zu können - ich räume das offen ein.
Gruß
Stephan
Re: "Datei schließen" mittels Makro [solved]
Hallo zusammen!
Aufgrund der Diskussionbeiträge in diesem Thread konnte eine Lösung des Problems erarbeitet werden. Das finde ich echt toll.
Meine Lösung lautet:
oDoc = ThisDatabaseDocument
oDoc.store()
oDoc.close(True)
Shell("soffice.exe",1)
Vielen Dank an alle, die sich an der Diskussion beteiligt haben.
Gruß
Jochen
Aufgrund der Diskussionbeiträge in diesem Thread konnte eine Lösung des Problems erarbeitet werden. Das finde ich echt toll.
Meine Lösung lautet:
oDoc = ThisDatabaseDocument
oDoc.store()
oDoc.close(True)
Shell("soffice.exe",1)
Vielen Dank an alle, die sich an der Diskussion beteiligt haben.
Gruß
Jochen
Windows 7 Professional (64 Bit)
LibreOffice 3.3.3; OOO330m19 (Build:301); tag libreoffice-3.3.3.1
Firefox 5.0
LibreOffice 3.3.3; OOO330m19 (Build:301); tag libreoffice-3.3.3.1
Firefox 5.0
- TuoDesperado
- **
- Beiträge: 21
- Registriert: Di, 21.12.2010 12:09
- Wohnort: Beuren bei Nürtingen
Re: "Datei schließen" mittels Makro [solved]
Hallo zusammen,
also ich hab mir mal eure Diskussion mit angesehen und muss sagen, super, das ist mal eine tolle Teamarbeit.
Hab mir gedacht, da kann ich doch sicherlich auch meinen Nutzen daraus ziehen.
hab hierzu noch diese Diskussion viewtopic.php?f=18&t=40701 und den Beitrag viewtopic.php?f=18&t=35713 dazu gezogen, denn ich möchte gerne mein Formular via Button schießen und ggf. via Button auch die komplette Anwendung beenden.
hierzu hab ich mir folgende Codes zusammen gebastelt.
Das schließen des Fensters funktioniert tadellos, das beenden von Oo mit Variante 1 und Variante 2 eigentlich auch, wäre da nicht eine Fehlermeldung, die ich bei beiden Varianten habe.
also ich hab mir mal eure Diskussion mit angesehen und muss sagen, super, das ist mal eine tolle Teamarbeit.
Hab mir gedacht, da kann ich doch sicherlich auch meinen Nutzen daraus ziehen.
hab hierzu noch diese Diskussion viewtopic.php?f=18&t=40701 und den Beitrag viewtopic.php?f=18&t=35713 dazu gezogen, denn ich möchte gerne mein Formular via Button schießen und ggf. via Button auch die komplette Anwendung beenden.
hierzu hab ich mir folgende Codes zusammen gebastelt.
Code: Alles auswählen
sub schliesen
'Formular schiesen
oDoc = thisComponent.currentController.frame
oDispatch = createUnoService("com.sun.star.frame.DispatchHelper")
oDispatch.executeDispatch(oDoc, ".uno:CloseDoc", "", 0, Array())
'Oo beenden Version 1 (ohne das Shell)
oDoc = ThisDatabaseDocument
oDoc.store()
oDoc.close(True)
'Shell("soffice.exe",1)
'Oo beenden Version 2
'StarDesktop.terminate()
end sub
Was mach ich falsch???Durch einen unerwarteten Fehler ist Oo abgestüzt... ...Dokumentenwiederherstellung... ...bla bla
Nur wo Lücken sind, kann Durchblick herrschen
Windows 7, OO3.2.1
Windows 7, OO3.2.1
- TuoDesperado
- **
- Beiträge: 21
- Registriert: Di, 21.12.2010 12:09
- Wohnort: Beuren bei Nürtingen
Re: "Datei schließen" mittels Makro [solved]
Hallo zusammen,
also ich hab mir mal eure Diskussion mit angesehen und muss sagen, super, das ist mal eine tolle Teamarbeit.
Hab mir gedacht, da kann ich doch sicherlich auch meinen Nutzen daraus ziehen.
hab hierzu noch diese Diskussion viewtopic.php?f=18&t=40701 und den Beitrag viewtopic.php?f=18&t=35713 dazu gezogen, denn ich möchte gerne mein Formular via Button schießen und ggf. via Button auch die komplette Anwendung beenden.
hierzu hab ich mir folgende Codes zusammen gebastelt.
Das schließen des Fensters funktioniert tadellos, das beenden von Oo mit Variante 1 und Variante 2 eigentlich auch, wäre da nicht eine Fehlermeldung, die ich bei beiden Varianten habe.
also ich hab mir mal eure Diskussion mit angesehen und muss sagen, super, das ist mal eine tolle Teamarbeit.
Hab mir gedacht, da kann ich doch sicherlich auch meinen Nutzen daraus ziehen.
hab hierzu noch diese Diskussion viewtopic.php?f=18&t=40701 und den Beitrag viewtopic.php?f=18&t=35713 dazu gezogen, denn ich möchte gerne mein Formular via Button schießen und ggf. via Button auch die komplette Anwendung beenden.
hierzu hab ich mir folgende Codes zusammen gebastelt.
Code: Alles auswählen
sub schliesen
'Formular schiesen
oDoc = thisComponent.currentController.frame
oDispatch = createUnoService("com.sun.star.frame.DispatchHelper")
oDispatch.executeDispatch(oDoc, ".uno:CloseDoc", "", 0, Array())
'Oo beenden Version 1 (ohne das Shell)
oDoc = ThisDatabaseDocument
oDoc.store()
oDoc.close(True)
'Shell("soffice.exe",1)
'Oo beenden Version 2
'StarDesktop.terminate()
end sub
Was mach ich falsch???Durch einen unerwarteten Fehler ist Oo abgestüzt... ...Dokumentenwiederherstellung... ...bla bla
Nur wo Lücken sind, kann Durchblick herrschen
Windows 7, OO3.2.1
Windows 7, OO3.2.1