Re: [de-users] LO Kommandozeile - externer Makro-Aufruf - Parameter übergeben

2017-11-03 Diskussionsfäden OoOHWHOoO

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.krumb...@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+unsubscr...@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+unsubscr...@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


Re: [de-users] LO Kommandozeile - externer Makro-Aufruf - Parameter übergeben

2017-11-03 Diskussionsfäden Thomas Krumbein

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+unsubscr...@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


Re: [de-users] LO Kommandozeile - externer Makro-Aufruf - Parameter übergeben

2017-11-03 Diskussionsfäden Gerhard Weydt

Hallo Hans-Werner,

wenn ich das richtig verstehe, startet dein Perl-Skript das Makro, das 
dann automatisch abläuft, so dass du nicht die Möglichkeit hast, über 
die Inputbox oder den Filepicker die Datei anzugeben. Das wäre ja einfach.
Aber wie wäre es, wenn du im Makro nicht die Datei stehen hättest, die 
verarbeitet werden soll, sondern eine fixe Hilfsdatei, in die jeweils 
vom Perl-Skript aus der Dateiname der zu verarbeitenden Datei 
geschrieben wird. Das Makro liest den Namen aus, öffnet die eigentliche 
Datei usw..


Gruß

Gerhard

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+unsubscr...@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


[de-users] LO Kommandozeile - externer Makro-Aufruf - Parameter übergeben

2017-11-03 Diskussionsfäden 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+unsubscr...@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