Makro beim Schliessen einens Dokuments ausführen
Moderator: Moderatoren
- 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
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)
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)
- 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
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!)?
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)
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)
- 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
Extras>Anpassen>EreignisseMarion 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?)?
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)
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)
Re: Makro beim Schliessen einens Dokuments ausführen
Hey Marion,
Entweder du baust eine Wartezeit vorher ein (z.B. ein "wait(1000)" - also 1 Sek. warten) oder du nimmst
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
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.Marion hat geschrieben:Weiß jemand warum?
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)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
- 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
Dieses CloseVeto kommt nun daher, dass Du nicht gespeichert hast...
Reihenfolge der Befehle sollte sein: Speichern - warten - close(TRUE)
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)
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)