Makro beim Schliessen einens Dokuments ausführen

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

Moderator: Moderatoren

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

Re: Makro beim Schliessen einens Dokuments ausführen

Beitrag von komma4 »

weiss gar nicht, ob das ein Problem ist: Daten, die mit Formularen verbunden sind, haben eine direkte Verbindung und sind damit "uatomatisch" in der DB.... Was möchtest Du denn speichern?
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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro beim Schliessen einens Dokuments ausführen

Beitrag von komma4 »

Das ginge über das "Dokument Schliessen"-Ereignis. Allerdings nicht beim Formular abzulegen, sondern im Bereich OOo - dann müsstest Du noch den Dateinamen abfragen, da sonst JEDES Schliessen betroffen ist.

Wie wäre es denn, wenn Du die Aktionen "Drucken", "Export als PDF" und "Schliessen des Formulars" zusammenlegst? Gibt es gar keinen Platz für eine Schaltfläche? (Wie druckst Du?)
Dann könntest Du auch einen Datensatz in einer Tabelle füllen, um den gesamten Bestellvorgang zu dokumentieren (unabhängig von der Dokumentation als PDF)


btw: sehe ich das richtig, dass in Deinem Code nur eine Bestellung pro Tag erlaubt ist (PDF-Name!)?
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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro beim Schliessen einens Dokuments ausführen

Beitrag von komma4 »

Marion hat geschrieben:wo ist denn dieser "Bereich OOo", an dem ich auf das Schließen eines Dokumentes Zugriff habe (über welches Menu komme ich dorthin?)?
Extras>Anpassen>Ereignisse

Bei Nicht-BASE-Dokumenten können neuerdings Ereignisse auch auf Dokumentenebene definiert werden.
Bei einem BASE-Dokument steht Dir nur "Speichern in: OpenOffice.org" zur Verfügung.
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)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Makro beim Schliessen einens Dokuments ausführen

Beitrag von Toxitom »

Hey Marion,
Marion hat geschrieben:Weiß jemand warum?
Ja. Weil dein Speichervorgang einfach einige Zeit braucht - das Makro aber nicht wartet und gleich die nächste Zeile ausführt - deinen Schliessen-Befehl. Und da du "False" übergeben hast, kümmert sich dieser auch nicht um evt. andere Prozesse, die das Schliessen verhindern - daher die Fehlermeldung. Der "Speichern"-Prozess benötugt das Dokument noch, gibt also eine Veto-Exception ab, der Schliessprozess kann nicht durchgeführt werden.
Entweder du baust eine Wartezeit vorher ein (z.B. ein "wait(1000)" - also 1 Sek. warten) oder du nimmst

Code: Alles auswählen

myDoc.close(true)
dann wird die Verantwortung, das Dokument zu schliessen, an den Prozesss abgegeben, der das Veto eingelegt hat - und meist klappt es dann :-)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro beim Schliessen einens Dokuments ausführen

Beitrag von komma4 »

Dieses CloseVeto kommt nun daher, dass Du nicht gespeichert hast...

Reihenfolge der Befehle sollte sein: Speichern - warten - close(TRUE)
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)
Antworten