[gelöst]Makro automatisch ausführen, aber wie?

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

Moderator: Moderatoren

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

[gelöst]Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Di, 18.12.2012 16:05

Hallo, ich habe ein Privatbrief Template erstellt und einen Dialog geschrieben, um die Adressdaten zu erfassen. Soweit so gut .... allerdings würde ich das Makro gerne automatisch ausführen lassen, wenn ich ein neues Dokument auf Basis des Template erstelle. Dazu sei noch erklärt, dass sich das entsprechende Makro (VB-Code) natürlich in dem gespeicherten Template befindet.

Außerdem öffnet sich jedesmal nach dem Schliessen der Dialoges das Code-Fenster. Wie kann ich das verhindern? Habe jetzt für dieses Problem ein neues Thema eröffnet.
Zuletzt geändert von HHTiger am Fr, 21.12.2012 15:15, insgesamt 2-mal geändert.
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Makro automatisch ausführen, aber wie?

Beitrag von juetho » Di, 18.12.2012 16:31

HHTiger hat geschrieben:Hallo, ich habe ein Privatbrief Template erstellt und einen Dialog geschrieben, um die Adressdaten zu erfassen. Soweit so gut .... allerdings würde ich das Makro gerne automatisch ausführen lassen, wenn ich ein neues Dokument auf Basis des Template erstelle.
Untersuche die Ereignisse unter Extras > Anpassen (Dokument erzeugt o.a.) und weise das Makro diesem Ereignis zu. Achte darauf (Auswahlliste unten), dass das Ereignis an der richtigen Stelle registriert wird.
Dazu sei noch erklärt, dass sich das entsprechende Makro (VB-Code) natürlich in dem gespeicherten Template befindet.
VB = Visual Basic. Das ist eine MS-Variante von Basic. Ich kann mir nicht vorstellen, dass du wirklich mit VB arbeitest. Das Basic von OO heißt Star-Basic (aus historischen Gründen) oder OO-Basic oder so.
Außerdem öffnet sich jedesmal nach dem Schliessen der Dialoges das Code-Fenster. Wie kann ich das verhindern?
Dazu müsstest du die Arbeitsweise genauer erläutern - Schritt für Schritt - oder ein Beispieldokument hochladen. Vielleicht ist das einfach eine Folge davon, dass du das Makro bisher manuell startest; oder es tritt ein Fehler auf, von dem du nichts erzählst.

Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC

F3K Total
********
Beiträge: 3224
Registriert: Mo, 28.02.2011 17:49

Re: Makro automatisch ausführen, aber wie?

Beitrag von F3K Total » Di, 18.12.2012 18:27

Moin HHTiger,
CROSSPOSTING ohne Referenz ist unhöflich!
R

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Di, 18.12.2012 21:46

juetho hat geschrieben:Untersuche die Ereignisse unter Extras > Anpassen (Dokument erzeugt o.a.) und weise das Makro diesem Ereignis zu. Achte darauf (Auswahlliste unten), dass das Ereignis an der richtigen Stelle registriert wird.
Ich verstehe nicht so recht, was Du damit sagen möchtest. Vermute mal du meinst => das Makro dem Ereigniss zuweisen. Das lässt sich jedoch nicht auswählen, da das Makro Bestandteil des Templates ist. Zugewiesen werden können nur die Makros, die nicht Bestandteil des Dokumentes sind. In VBA wäre das Äquivalent "On Open" glaube ich.
VB = Visual Basic. Das ist eine MS-Variante von Basic. Ich kann mir nicht vorstellen, dass du wirklich mit VB arbeitest. Das Basic von OO heißt Star-Basic (aus historischen Gründen) oder OO-Basic oder so.
Das sollte nur ein Hinweis seien, dass ich das in OO implementierte VB-Derivat (jetzt weiss ich auch dass es Star-Basic, OO-Basic oder so heißt) benutze und NICHT JavaScript, BeanShell oder Python. Sorry für diese etwas "schwammige" Aussage zuvor.
Dazu müsstest du die Arbeitsweise genauer erläutern - Schritt für Schritt - oder ein Beispieldokument hochladen. Vielleicht ist das einfach eine Folge davon, dass du das Makro bisher manuell startest; oder es tritt ein Fehler auf, von dem du nichts erzählst.
In Ermangelung besseren Wissens (dies ist mein erstes Project in OO-Writer) habe ich im Template einen Feldtyp "Makro ausführen" benutzt und die Schriftfarbe auf weiß gesetzt, damit es nich mit gedruckt wird. Eine Fehlermeldung gibt es definitiv nicht. Die hätte ich hier sonst auch berichtet (falls ich sie nicht hätte auflösen können).
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Di, 18.12.2012 21:51

F3K Total hat geschrieben:Moin HHTiger,
CROSSPOSTING ohne Referenz ist unhöflich!
R
Sorry, aber ich empfinde es als unhöflich, wenn Du mir hier solch einen Spruch reindrückst ohne zu erklären, was Du damit eigentlich meinst.

Wieso CROSSPOSTING???
Was heisst Crossposting?
Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Wieso ist mein Posting unhöflich?

Unter Crossposting verstehe ich das Posten desselben Postings unter verschiedenen Rubriken des selben Forums!
Zuletzt geändert von HHTiger am Di, 18.12.2012 22:07, insgesamt 1-mal geändert.
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

F3K Total
********
Beiträge: 3224
Registriert: Mo, 28.02.2011 17:49

Re: Makro automatisch ausführen, aber wie?

Beitrag von F3K Total » Di, 18.12.2012 21:58

Moin,
bzgl. Crossposting:
HHTiger hat geschrieben:Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Der Link zeigt auf den gleichen Beitrag von Dir! In eben einem anderen Forum.
Du hast die gleiche Frage in mehreren Foren gestellt.
Du beschäftigst also mehrere Leute mit der gleichen Frage.
Antworten die z.B. hier gegeben wurden, sind im anderen Forum nicht sichtbar und werden ggf. mehrfach bearbeitet. Unnötigerweise. Darum ist das unhöflich.
Wenn du schon in zwei Foren nachfragst solltest Du sie wenigstens verlinken (das ist mit Referenz gemeint)
Hier noch ein anderer Beitrag zum Thema
HHTiger hat geschrieben:da das Makro Bestandteil des Templates ist. Zugewiesen werden können nur die Makros, die nicht Bestandteil des Dokumentes sind
Das geht, Makros aus einem Dokument können gestartet werden, siehe Beitrag unten von Stephan.

R
Zuletzt geändert von F3K Total am Di, 18.12.2012 22:18, insgesamt 3-mal geändert.

Stephan
********
Beiträge: 10547
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro automatisch ausführen, aber wie?

Beitrag von Stephan » Di, 18.12.2012 22:02

Vermute mal du meinst => das Makro dem Ereigniss zuweisen. Das lässt sich jedoch nicht auswählen, da das Makro > Bestandteil des Templates ist.
dann solltest Du DEine Version von OO oder LO nennen, denn normalerweise ist das selbstverständlich möglich, Beispiel anhängend.
ich das in OO implementierte VB-Derivat
es handelt sich um einen ganz normalen Basic-Dialekt unter Vielen und kein VB-Derivat. (Wenn überhaupt wäre StarBasic mit VBA zu vergleichen, nicht jedoch mit VB.)


Gruß
Stephan
Dateianhänge

[Die Dateierweiterung ott wurde deaktiviert und kann nicht länger angezeigt werden.]


Gast

Re: Makro automatisch ausführen, aber wie?

Beitrag von Gast » Di, 18.12.2012 23:16

HHTiger hat geschrieben:Wieso CROSSPOSTING???
Was heisst Crossposting?
Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Wieso ist mein Posting unhöflich?
Suchmaschine deiner Wahl: Crossposting
lesen Beispiel
http://das-excel-forum.de/cross.htm

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Mi, 19.12.2012 01:56

Hallo Stephan,
vorab: Dein Beispiel (vielen Dank dafür!) funktionert bei mir, allerdings kann ich die Erstellung nicht so ganz nachvollziehen. Ich benutze OpenOffice 3.4.1.

Von der Sache her weist Du dem Event "Neues Dokument" das Makro "Main" zu. Klar.

Daß das bei Dir funktioniert halte ich für einen Zufall oder Bug, da man das Makro "Main" NICHT aus dem Dokument benutzen kann. Die Tatsache, daß es aber funktioniert kommt meiner Meinung nach daher, daß Du überall die Standard-Vorgaben benutzt.

Beispiel: Makroname "Main", Bibliotheksname "Modul1".

Versuche einmal in meinem Dokument das Makro "ShowMessageBox" aus der Bibliothek "MyModule" mit dem Event "Dokument öffnen" zu verknüpfen.
Die Möglichkeit wird garnicht erst angeboten.

Von der Vorgehensweise müßte es eigentlich folgendermaßen funktionieren:

1.) Das Makro "ShowMessageBox" wurde im Fenster "OpenOffice.org Basic" erstellet.

2.) im selben Fenster dann <Extras> <Anpassen...>

3.) im Fenster "Anpassen" nun das Ereignis "Dokument Öffnen" auswählen und dann rechts unter "Zuweisen:" den Button "Makro..." anklicken.

4.) im Fenster "Makro-Selektor" müsste man jetzt auf der linken Seite unter "Bibliothek" zunächst das Dokument "Test.ott" und die Bibliothek "MyModul" auswählen und dann rechts unter "Name des Makros" das Makro "ShowMessageBox" auswählen und abschliessend mit dem "OK" Button beenden.

Doch leider sind die Schritte unter 4.) nicht möglich, da das Dokument bzw. Template "Test.ott" garnicht angeboten wird! :cry:



Zum Thema VB:

"Derivat" ("Abkömmling", von lateinisch derivare "ableiten")

Visual Basic Classic (entwickelt von Alan Cooper) war quasi der Urvater aller heute gängigen BASIC-Dialekte. Insbesobere sind VBA und VBScript Dialekte von VB!

Da z.B. OpenOffice-BASIC über den nahezu identischen Befehlssatz wie VB oder VBA verfügt und sich hauptsächlich in der API von VBA unterscheidet, kann man hier durchaus von einem "Abkömmling" sprich Derivat von VB oder VBA sprechen.

Letztlich sind somit alle heute existierenden BASIC-Dialekte Derivate des 1964 von John George Kemeny und Thomas Eugene Kurtz entwickelten BASIC.

Allerdings muss ich Dir in einem Punkt recht geben. Aus Sicht der Nomenklatur passt Dialekt besser, da es sich um eine Sprache handelt. :wink:

Gruss Klaus
Dateianhänge

[Die Dateierweiterung ott wurde deaktiviert und kann nicht länger angezeigt werden.]

ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Mi, 19.12.2012 02:19

F3K Total hat geschrieben:Moin,
bzgl. Crossposting:
HHTiger hat geschrieben:Wieso zeigt der Link auf ein anderes Forum?
Welche Referenz soll fehlen?
Der Link zeigt auf den gleichen Beitrag von Dir! In eben einem anderen Forum.
Du hast die gleiche Frage in mehreren Foren gestellt.
Du beschäftigst also mehrere Leute mit der gleichen Frage.
Antworten die z.B. hier gegeben wurden, sind im anderen Forum nicht sichtbar und werden ggf. mehrfach bearbeitet. Unnötigerweise. Darum ist das unhöflich.
Wenn du schon in zwei Foren nachfragst solltest Du sie wenigstens verlinken (das ist mit Referenz gemeint)
Hier noch ein anderer Beitrag zum Thema
R
Danke für die freundliche Aufklärung, habe bereits eine entsprechende Nachricht in dem anderen Forum gepostet. Werde sie hier jetzt aber nicht wiederholen, um nicht zum Wiederholungstäter zu werden. :wink:

Vielleicht als Verbesserungsvorschlag, denn jeder kann mal einen Fehler machen, aber niemand möchte unhöflich sein:

Bitte beachte folgendes zum Thema CROSSPOSTING

Der Beitrag ist wirklich nett geschrieben und verdeutlicht die Position beider Seiten.
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

F3K Total
********
Beiträge: 3224
Registriert: Mo, 28.02.2011 17:49

Re: Makro automatisch ausführen, aber wie?

Beitrag von F3K Total » Mi, 19.12.2012 06:35

Moin,
HHTiger hat geschrieben:2.) im selben Fenster dann <Extras> <Anpassen...>
Hier liegt der Fehler, du versuchst das Makro in der Basic Umgebung zuzuweisen.
Die Basic Umgebung weiss nicht, welchem Dokument du das Makro zuweisen möchtest, du könntest mehrere Dokumente offen haben.
Wechsle ins aktuelle Dokument (Test.ott) und dort unter Extras/Anpassen ...
Dann klappst auch mit dem Makro.

Gruß R

HHTiger
**
Beiträge: 27
Registriert: Di, 18.12.2012 15:57

Re: Makro automatisch ausführen, aber wie?

Beitrag von HHTiger » Mi, 19.12.2012 13:18

Hallo R ... moin, moin
danke für den Tipp. Kaum macht man etwas richtig und schon funzt es. Aber mal im Ernst, es scheint sich tatsächlich um 2 kleine "Bugs" zu handeln, denn der Dialog kann über mehrere Wege aufgerufen werden und
F3K Total hat geschrieben:Hier liegt der Fehler, du versuchst das Makro in der Basic Umgebung zuzuweisen.
Die Basic Umgebung weiss nicht, welchem Dokument du das Makro zuweisen möchtest, du könntest mehrere Dokumente offen haben.
es besteht im unteren Auswahl-Feld (ComboBox) "Speichern in" die Möglichkeit, das Dokument auszuwählen um genau das dem OO mitzuteilen.

1.) Bug: Aus dem aktuellen Dokument: <Extras><Makros><Makros verwalten><OpenOffice.org Basic ...>. In dem nun offenen Fenster "OpenOffice Basic Makros" kann man nun das richtig Dokument mit dem richtigen Makro auswählen (oder auch nicht, denn das ändert nichts an der weiteren Funktion) und anschliessend mit dem Button <Zuordnen...> in den Dialog "Anpassen" gehen. Dort ist nun in der unteren ComboBox "Speichern in" das richtige Dokument vorbelegt. Von daher ist OO schon bekannt, um welches Dokument es geht. Der Bug besteht nun meiner Meinung nach darin, dass bei einem Doppelklick auf das Ereignis nicht das zuvor ausgewählte Makro übernommen wird bzw. dass der sich öffnende Dialog "Makro-Selektor" nicht die Makros des ausgewählten Dokumentes auflistet.

2.) Bug: ähnlich funktioniert das auch aus der Basic Umgebung. Allerdings wird dort schon in ComboBox "Speichern in" nicht das oder die geöffneten Dokumente angeboten, obwohl es natürlich möglich wäre. (vorausgesetzt Bug 1 wäre bereinigt, dann sollten auch die nachfolgende Dialog richtig laufen)

btw: weiß zufällig jemand wo bzw. bei wem man diese Bugs melden könnte/sollte?

Gruß Klaus
ich verwende OpenOffice 3.1.4 auf Windows 7 Ultimate

Gast

Re: Makro automatisch ausführen, aber wie?

Beitrag von Gast » Mi, 19.12.2012 14:24

Hallo Klaus,
weiß zufällig jemand wo bzw. bei wem man diese Bugs melden könnte/sollte?
zufällig??

Steht in FAQs, du findest sie, wenn du in der Forenübersicht
den Blick nach unten richtest.

Community Foren
- FAQs
– - Allgemeines und dort etwas scrollen bis:
4. Verbesserungsvorschläge und Fehlermeldungen zu AOO oder LO

viewtopic.php?f=27&t=54231

freedom
********
Beiträge: 2186
Registriert: Do, 16.08.2007 15:12

Re: Makro automatisch ausführen, aber wie?

Beitrag von freedom » Mi, 19.12.2012 15:18

Hallo Klaus,
HHTiger hat geschrieben:
Vielleicht als Verbesserungsvorschlag, denn jeder kann mal einen Fehler machen, aber niemand möchte unhöflich sein:

Bitte beachte folgendes zum Thema CROSSPOSTING

Der Beitrag ist wirklich nett geschrieben und verdeutlicht die Position beider Seiten.
Guter Vorschlag.
Ich habe ihn weiter geleitet in die zugehörige Rubrik "Site Feedback"
viewtopic.php?f=17&t=60694

F3K Total
********
Beiträge: 3224
Registriert: Mo, 28.02.2011 17:49

Re: Makro automatisch ausführen, aber wie?

Beitrag von F3K Total » Mi, 19.12.2012 19:17

Moin Tiijer,
HHTiger hat geschrieben:es besteht im unteren Auswahl-Feld (ComboBox) "Speichern in" die Möglichkeit, das Dokument auszuwählen um genau das dem OO mitzuteilen.
Ich versuche es mit meinen eigenen Worten zu erklären:
Es gibt einen Ort an dem der Makro Code gespeichert wird:
  • Makros/Module/Bibliotheken werden innerhalb eines Dokumentes gespeichert, Vorteil: die Makros sind immer dabei.
  • Makros/Module/Bibliotheken werden in OpenOffice (z.B. im Benutzerverzeichnis) gespeichert, Vorteil: gleiche Aufgaben in unterschiedlichen Dokumenten nutzen das gleiche Makro, Nachteil, ein an ein Dokumentereignis gebundenes Makro fehlt auf einem anderen Rechner.
Diesen Ort, und nur den Ort, wählst Du mit der Combobox "Speichern in" aus.

Und:
Es gibt Ereignisse, die die Makros ausführen.
  • Anwendungsereignisse, wie z.B Programmstart, Programmende. Diese werden unter Extras/Anpassen/Ereignisse im Programmfenster eingetragen. Genau hierhin kommst Du auch, wenn Du aus der Basic Umgebung auf Makro auswählen/zuordnen klickst, denn du befindest Dich auf Anwendungsebene.Anwendungereignisse sind also Dokumentunabhängig.
  • Dokumentereignisse, wie z.B. bei Dir Neues Dokument. Diese werden z.B. im Fenster einer Writerdatei unter Extras/Anpassen/Ereignisse eingetragen. Sie sind von diesem Dokument abhängig. Zugeordnete Makros werden bei dem gewählten Dokumentereignis ausgeführt.
  • Elementereignisse (z.B. eine Schaltfläche der du unter Kontrollfeld/Ereignisse ein Makro zur Ausführung zuordnen kannst.) Zugeornete Makros werden ausgeführt, wenn dem Element das gewählte Ereignis widerfährt
Aus meiner Sicht kann hier von einem Bug nicht die Rede sein.

Gruß und viel Erfolg beim weiterforschen
R

Antworten