Hallo,
Ich möchte mir eine einfache Adress-Datenbank aufbauen und die Daten auch in Vorlagen einfügen. Ich beginne also im Writer mit der standardmässig geöffneten Seite "Untitled 1". Hier starte ich das Macro mit dem ersten Dialog, um die Vorlage auszuwählen. Einige Vorlagen benötigen Adressen, welche nun in Calc abgefragt werden, um dann in die Vorlage eingefügt zu werden.
Ich habe beide Teile separat hergestellt. Der Teil in Writer und der Datenbankteil in Calc arbeiten jeweils einwandfrei. Wenn nun mit dem Start in Writer die Seite "Untitled 1" geöffnet ist und ich öffne manuell die Calc-Datei mit den Datenbank-Daten, dann sind beide Dateien in der Taskleiste sofort verfügbar. Ich kann hin- und herspringen. So möchte ich es auch im Macro haben. Doch, wenn ich im Macro die Calc-Datei öffne, wird sofort die Writer-Datei "Untitled 1" geschlossen.
Dateiname = "file:///home/sigurd/LibreOffice/LibO_Calc/DataBase/Adressen.ods"
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "URL"
args6(0).Value = Dateiname
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Open", "", 0, args6())
Wenn dann das Macro wieder zu Writer zurückkehren soll, die Vorlage aufrufen soll und die entsprechenden Einfügungen machen soll, geht das nicht.
Wie kann ich das Problem lösen?
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Modulübergreifendes Macro
-
- Beiträge: 185
- Registriert: Sa 13. Aug 2011, 10:01
- Wohnort: Chonburi Thailand Asia
- Kontaktdaten:
Re: Modulübergreifendes Macro
Willkommen im Forum.
Mein Tipp: arbeite nicht mit dispatcher-Befehlen.
Mit folgendem Code öffnest Du Deine Calc-Datei und anschliessend ein neues Writer-Dokument (aus der Standardvorlage)
Nun kannst Du beide Dateien über deren Objektnamen ansprechen.
Einführende Literatur zur StarBasic-Programmierung:
Andrews Makro-Dokument
StarBasic FAQ
Objekt-Inspektions-Tools
XRAY
MRI
Viel Erfolg!
Mein Tipp: arbeite nicht mit dispatcher-Befehlen.
Mit folgendem Code öffnest Du Deine Calc-Datei und anschliessend ein neues Writer-Dokument (aus der Standardvorlage)
Code: Alles auswählen
oDeskNeu = createUnoService( "com.sun.star.frame.Desktop" )
sDateiname = "file:///home/sigurd/LibreOffice/LibO_Calc/DataBase/Adressen.ods"
oCalcDok = oDeskNeu.loadComponentFromURL( sDateiname, "_blank", 0, Array() )
sNeuURL = "private:factory/swriter"
oWriterDok = oDeskNeu.loadComponentFromURL( sNeuURL, "_blank", 0, Array() )
Einführende Literatur zur StarBasic-Programmierung:
Andrews Makro-Dokument
StarBasic FAQ
Objekt-Inspektions-Tools
XRAY
MRI
Viel Erfolg!
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)
Re: Modulübergreifendes Macro SOLVED
Hallo komma4,
es tut mir leid, dass ich erst heute wieder hier hereinschaue. Ich hatte Probleme mit einem neu gekauften Drucker-Scanner von Canon. Die Linuxtreiber, welche Canon anbietet, sind veraltet. Der Scanner-Treiber funktioniert nicht. Und Canon übernimmt keinerlei Support - extrem schlecht!!! Sie sollten auf ihrer Webseite wenigstens dazuschreiben, dass die Nutzung der Linux-Treiber auf eingene Gefahr ist. Unter Mithilfe des Ubuntu-Forums habe ich eine Seite gefunden, auf der die neuesten Scanner- und Drucker-Treiber für Canon-Geräte bereitgestellt sind. Und alles funktioniert! Das nur nebenbei.
Bei Andrew Pitonyak habe ich gefunden, dass das Öffnen und Schliessen von Dateien durch ein Macro anders behandelt wird als der manuelle Befehl im Modul. Ich ging davon aus, dass (wie bei den manuellen Befehlen im Modul) die Textdatei bestehen bleibt, obwohl ich eine Calc-Datei aufrufe und umgekehrt. Doch beim Aufruf einer Calc-Datei durch das Macro wird eine jede Textdatei automatisch geschlossen. Ich hatte nun nach Beendigung der Datenbank-Funktion im Calc-Modul die Calc-Datei mittels Macrobefehl geschlossen, da ich annahm, dass die Textdatei immer noch da ist. Doch nun ist keine Datei mehr da und das Macro stoppt. Ich habe einfach den Befehl zum Schliessen der Calc-Datei gelöscht, da die Calc-Datei beim Aufruf einer Textdatei vom Macro automatisch geschlossen wird. Und schon funktioniert alles!
Mich würde aber doch interessieren, warum ich keine Dispatcher-Befehle verwenden soll. Ich war immer der Ansicht, dass das UNO-Konzept die Weiterentwicklung ist. Liege ich da falsch?
#
Danke für die Hinweise,
Sigurd
es tut mir leid, dass ich erst heute wieder hier hereinschaue. Ich hatte Probleme mit einem neu gekauften Drucker-Scanner von Canon. Die Linuxtreiber, welche Canon anbietet, sind veraltet. Der Scanner-Treiber funktioniert nicht. Und Canon übernimmt keinerlei Support - extrem schlecht!!! Sie sollten auf ihrer Webseite wenigstens dazuschreiben, dass die Nutzung der Linux-Treiber auf eingene Gefahr ist. Unter Mithilfe des Ubuntu-Forums habe ich eine Seite gefunden, auf der die neuesten Scanner- und Drucker-Treiber für Canon-Geräte bereitgestellt sind. Und alles funktioniert! Das nur nebenbei.
Bei Andrew Pitonyak habe ich gefunden, dass das Öffnen und Schliessen von Dateien durch ein Macro anders behandelt wird als der manuelle Befehl im Modul. Ich ging davon aus, dass (wie bei den manuellen Befehlen im Modul) die Textdatei bestehen bleibt, obwohl ich eine Calc-Datei aufrufe und umgekehrt. Doch beim Aufruf einer Calc-Datei durch das Macro wird eine jede Textdatei automatisch geschlossen. Ich hatte nun nach Beendigung der Datenbank-Funktion im Calc-Modul die Calc-Datei mittels Macrobefehl geschlossen, da ich annahm, dass die Textdatei immer noch da ist. Doch nun ist keine Datei mehr da und das Macro stoppt. Ich habe einfach den Befehl zum Schliessen der Calc-Datei gelöscht, da die Calc-Datei beim Aufruf einer Textdatei vom Macro automatisch geschlossen wird. Und schon funktioniert alles!
Mich würde aber doch interessieren, warum ich keine Dispatcher-Befehle verwenden soll. Ich war immer der Ansicht, dass das UNO-Konzept die Weiterentwicklung ist. Liege ich da falsch?
#
Danke für die Hinweise,
Sigurd
-
- Beiträge: 185
- Registriert: Sa 13. Aug 2011, 10:01
- Wohnort: Chonburi Thailand Asia
- Kontaktdaten:
Re: Modulübergreifendes Macro SOLVED
dispatcher ist unglaublich schlecht dokumentiert und wird IMHO nicht weiter entwickelt.SigurdF hat geschrieben:warum ich keine Dispatcher-Befehle verwenden soll
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.