Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


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.