Anbindung eines Vorlagenmakros an ein Writer-Dokument

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

Moderator: Moderatoren

jaba2000
Beiträge: 8
Registriert: Fr, 07.04.2006 10:59

Anbindung eines Vorlagenmakros an ein Writer-Dokument

Beitrag von jaba2000 »

Hallo,

in MS-Word läßt sich an ein Worddokument eine VBA-Dokumentenvorlage zuweisen. Der Code steht in der Vorlage, das Dokument kann aber auf den Code zugreifen. Bisher ist es mir nicht gelungen das gleiche mit OO2.0 zu realisieren. Wie ich es auch anstelle enthält das Writerdokument immer auch den Basic-Code. Ändert man den Code der Vorlage, wird der Code des Dokumentes nicht aktualisiert. Falls diese Dokumentenzuweisung nicht funktionieren sollte: Wie läßt sich der Basic-Code eines Writerdokumentes austauschen ohne den Inhalt des Writerdokumentes zu verändern?

Gruß jaba2000
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Jaba2000,
Bisher ist es mir nicht gelungen das gleiche mit OO2.0 zu realisieren. Wie ich es auch anstelle enthält das Writerdokument immer auch den Basic-Code.
Hmm, OOo geht hier andere - wohl bessere :wink: - Wege. Wenn du Code in einer Vorlage hast - und die Grundlage des Dokumentes ist (wird daraus erzeugt), dann ist der Code auch im Dokument.

Alternative: Den Code gar nicht in der Vorlage speichern, sondern im Bereich "Meine Makros" oder - fallls alle Benutzer darauf zugreifen sollen - im Bereich "OpenOffice.org Makros". Dann hast du die Funktionalität - ohne Makros.

Im Übrigen kannst du natürlich den Makrocode später auch entfernen - lösch einfach die entsprechenden Bibliotheken und/oder Module. Das tangiert den Inhalt des Dokumentes nicht.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
jaba2000
Beiträge: 8
Registriert: Fr, 07.04.2006 10:59

Beitrag von jaba2000 »

Hi Toxitom,

vielen Dank für Deine schnelle Antwort. Wie sooft haben manch gute Ansätze auch Ihre Nachteile. Habe folgendes Problem:
20 bis 30 inhaltlich verschiedene Dokumentenformulare mit demselben Makrocode. Die Dokumentenformulare kann der User beliebig abändern, jedoch nicht den Makrocode. Dieser könnte sich aber ändern (Anpassungen, Updates, Bugfixes). Damit man nicht in jedem Formular rumdoktern muß hab ich dies bei MS mit einer Universalmakrovorlage gelöst mit der jedes Formular verbunden ist. Da der User nun das Formular ändern darf, benötige ich ein OO-Basic-Modul, welches den Basic-Code der Formulare austauscht ohne das Formular inhaltlich zu verändern. Gibt es so eine Lösung?

Gruß jaba2000
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Jaba2000,
OO-Basic-Modul, welches den Basic-Code der Formulare austauscht ohne das Formular inhaltlich zu verändern. Gibt es so eine Lösung?
Na, wie ich schon sagte: Speicher den Code eben nicht im Dokument oder in der Vorlage, sondern an den Stellen "Meine Makros" oder hier wohl besser "OpenOffice.org Makros". Erzeuge dir dort zuerst eine neue Bibliothek - zum Beispiel "MyFormulare", packe dort den Code hinein, dann kann jeder sein Formular verändern, nicht aber die Makros an sich. Und die Vorlagen bleiben Makrofrei.

Gruss
Thomas

PS: Bei 20 Vorlagen, die alle den gleichen Code benutzen, ist das sowieso der einzig vernünftige Weg :wink:
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
jaba2000
Beiträge: 8
Registriert: Fr, 07.04.2006 10:59

Beitrag von jaba2000 »

Hallo Toxitom,

Genauere Problematik:
Ich habe eine Datenbankanwendung aus der heraus verschiedene Auswertungen erstellt werden. Die Auswertungen werden über MS-Word ausgedruckt. Dazu wird ein Auswertungsdaten-XML-File generiert und an das Wordmakro übergeben. Dieses erstellt praktisch nach "Serienbriefmanier" aus den verschiedenen Vorlagen die fertigen Auswertungen. Funktioniert prima. Nun möchte ich gerne auch OO anbinden. Die Funktionalität hab ich fast zu 99% umsetzen können. Einziges Problem ist die Trennung der Formulare vom Makrocode. Wie binde ich nun "MyBasicCode" bei "OpenOffice.org Makros" aus meiner Anwendung heraus in die jeweilige OO-Installation ein? Welche Verzeichnisse, Dateien oder Registryeinträge sind dazu notwendig? Die Realisierung muss programmgesteuert ablaufen, nicht per Mausklicks.

Gruß jaba2000
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Jaba2000,
Wie binde ich nun "MyBasicCode" bei "OpenOffice.org Makros" aus meiner Anwendung heraus in die jeweilige OO-Installation ein? Welche Verzeichnisse, Dateien oder Registryeinträge sind dazu notwendig? Die Realisierung muss programmgesteuert ablaufen, nicht per Mausklicks.
Na, da gibt es doch fertigen Code - Installationscode. Schau dir doch einfach mal das Beispiel Calc-Addon Datenmaske auf http://www.amt-wiesbaden.de an. Die Datei ist eine einfache Installationsdatei, welche die im Dokument befindlichen Bibliotheken in den Platz "Meine Makros" kopiert. Das musst du eigentlich nur anpassen :D

Hier noch mal der -> komplette LinK -> Rechts im Download-Bereich.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
jaba2000
Beiträge: 8
Registriert: Fr, 07.04.2006 10:59

Beitrag von jaba2000 »

Hi Toxitom,

Super :lol:

Schaut ganz danach aus, was ich so suche. Hätte es zwar gerne über meine Entwicklungsumgebung gemacht, aber ein kleines OO-Installationsskript werd ich wohl auch irgendwie einbinden können.

Nochmals besten Dank für die schnelle Hilfe.

PS.: Hast Du evtl auch eine Antwort für dieses Problem:
http://www.oooforum.de/viewtopic.php?t= ... 849303cd66

Viele Grüße jaba2000
Antworten