Hallo Thomas,
herzlichen Dank für Deinen Hinweis.
Durch all die seitenlangen Hinweise auf super-komplizierte
Vorgehensweisen bezüglich dieser Problemstellung in den Threads habe ich
mich davon abhalten lassen, einfach mal die eigentlich logischste
Variante zu probieren. Da hätte ich besser gleich zu erst mal hier in
der Liste nachgefragt ;-)) !!!
Ja, so funktioniert es wunderbar :-))))))))))
[1] Externer Makro-Aufruf (via Perl)
use strict;
use warnings;
my $K; # Konfigurationsdatei
my $L; # Libre Office
my $M; # Makro
$K = 'E:\ETC\Modellbahn\Bauteile\TabelleAktualisieren_Bauteile.txt';
$L = "C:/Program Files/LibreOffice 5/program/soffice.exe";
$M = "macro:///Standard.TabelleAktualisieren.TabelleAktualisieren($K)";
`"$L" --nologo "$M"`;
[2] Makro
Option Explicit
Sub TabelleAktualisieren (FN_ConfD as String)
:
End Sub
Bei [1] muss man nur darauf achten, dass die "ollen Windows \" kaschiert
werden durch ' ... ' oder "... \\ ..." , weil sonst Perl meckert:
$K = 'E:\ETC\Modellbahn\Bauteile\TabelleAktualisieren_Bauteile.txt';
oder
$K = "E:\\ETC\\Modellbahn\\Bauteile\\TabelleAktualisieren_Bauteile.txt";
Ein kleiner Hinweis:
Diese externe Makro-Aufruf-Strategie (nach obigem Schema) kann man
natürlich auch mit anderen Programmiersprachen realisieren, Perl ist da
nicht zwingend. Ich nutze unter Windows "Strawberry Perl" (
http://strawberryperl.com/ ), weil eben kostenlos, unter Windows
lauffähig und als Programmiersprache schon ordentlich leistungsfähig und
auch ziemlich flott ...
Viele Grüße
Hans-Werner :-))
------ Originalnachricht ------
Von: "Thomas Krumbein" <Thomas.Krumbein@documentfoundation.org>
An: users@de.libreoffice.org
Gesendet: 03.11.2017 12:57:00
Betreff: Re: [de-users] LO Kommandozeile - externer Makro-Aufruf -
Parameter übergeben
Hei Hans,
jo, sollte an sich gehen:
der Shellaufruf
soffice.exe --nologo
'macro:///Standard.TabelleAktualisieren.TabelleAktualisieren_Bauteile("Parameter1",
"Parameter2")'
sollte das Makro mit zwei übergebenen Stringparametern starten.
Das Makro muss aber auch zwei Parameter erwarten!
Wie Du das allerdings in Dein shell-Script "reinbastelst" weiss ich
nicht wirklich;)
Viele Grüße
Thomas
Am 03.11.2017 um 11:10 schrieb OoOHWHOoO:
Hallo, folgende Problemstellung:
Mit etwas Perl-Code starte ich ein Makro, dass mehrere Tabellen (von
ods-Dateien) bearbeitet:
use strict;
use warnings;
my $L;
my $M;
$L = "C:/Program Files/LibreOffice 5/program/soffice.exe";
$M =
"macro:///Standard.TabelleAktualisieren.TabelleAktualisieren_Bauteile";
`"$L" --nologo "$M"`;
Das Makro liest aus einer Konfigurationsdatei Konfigurationsdaten und
führt seine Verarbeitungen aus.
Makro: Standard.TabelleAktualisieren.TabelleAktualisieren_Bauteile
Konfigurationsdatei:
E:\ETC\Modellbahn\Bauteile\TabelleAktualisieren_Bauteile.txt
Das funktioniert alles prima :-)) ... Der einzige "Schönheitsfehler"
ist, dass Pfad/Dateiname der Konfigurationsdatei im Makro als
Zeichenkette angegeben ist.
Gibt es eine Möglichkeit mit LO bei einem externen Makro-Aufruf (s.o.
Perl-Beispiel), dem Makro Daten zu übergeben ? Wenn ja, wie müsste ich
das formulieren ?
Meine Suche im WEB hat leider nur zu Beispielen geführt, die nicht
funktionieren beziehungsweise im Verlauf der Threads "als nicht
funktionierend" zerredet wurden ...
So meine Frage:
Gibt es eine Möglichkeit, für nachfolgendes Beispiel eine
Parameter-Übergabe an das Makro zu realisieren ?
[1] Makro-Name
macro:///Standard.Modul1.ParameterTest
[2] Makro-Inhalt
Sub ParameterTest ???
MsgBox(Dateiname)
End Sub
[3] Perl-Aufruf (vereinfachte Darstellung)
my $Dateiname;
Dateiname = "C:\TMP\Konfigurationsdaten.txt";
soffice "macro:///Standard.Modul1.ParameterTest ??? ";
Vielen Dank im Voraus für eventuelle Hinweise, Tipps oder gar ein
Aufrufbeispiel,
Gruß
Hans-Werner
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.