Keine Werbeeinblendungen für registrierte User

❤ SPENDEN Sie jetzt für das ❤
🙏 LibreOffice Forum 🙏



  🌹 Danke für Ihre Unterstützung 🌹


[gelöst] Makro aus Datei in Bibliothek verschieben

Alles zur Programmierung im LibreOffice.
Antworten
fbarc
Beiträge: 15
Registriert: Mi 8. Dez 2021, 02:47

[gelöst] Makro aus Datei in Bibliothek verschieben

Beitrag von fbarc » Mo 16. Mai 2022, 18:26

Hi,

ich habe mehrere Dateien mit vielen Makroteilen.
Da die Makros immer die gleichen sind, habe ich nun eine Bibliothek gemacht und aus einer Datei da alles reinkopiert.

Die 2. Datei soll nun auch auf die Bibliothek zugreifen und nicht mehr auf die "internen" Dateimakros.

Ich habe alle Makros aus der Datei gelöscht, aber nun werden die Makros nicht mehr gefunden.

Ich muß alle Schaltflächen manuell angehen und die Bibliothekenmakros auswählen.

Gibt es da keine Möglichkeit das "in einem Rutsch" irgendwie zumzuziehen??


Gruß
Fabi
Zuletzt geändert von fbarc am Mi 18. Mai 2022, 02:46, insgesamt 1-mal geändert.
Meine Signatur steht auf der Rückseite

craig
Beiträge: 1128
Registriert: Do 21. Apr 2016, 11:42

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von craig » Mo 16. Mai 2022, 18:55

Hallo Fabi,

ich gehe davon aus, dass Du eine neue Bibliothek unter "Meine Makros & Dialoge" gespeichert hast.
Damit Du einen globalen Zugriff auf Deine benutzerdefinierte Bibliothek
erhälst, muss die Bibliothek beim Officestart geladen werden.
  1. Bei mir habe ich unter "Meine Makros & Dialoge\Standard" ein Modul gespeichert,
    welches die erforderlichen Bibliotheken lädt.
    • Name des Moduls z.B. modLoadLib
    • Der Code zum Laden:

      Code: Alles auswählen

      REM  *****  BASIC  *****
      Sub LoadingLibraries
      	 GlobalScope.BasicLibraries.LoadLibrary("MeineLib")
      	
      	 ' https://wiki.openoffice.org/wiki/DE/Makro_Basic_Tutorial#X-Ray_tool
      	 ' GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
      	 REM usw.
      End Sub
      
      
  2. Nun fehlt noch ein Ereignis zum Laden
    1. Menü Extras → Anpassen...
    2. Register "Ereignisse"
    3. Unterhalb der Listbox "Speichern in:" LibreOffice auswählen
    4. Dann in der Listbox das Ereignis Programmstart markieren.
    5. Button "Makro" betätigen und o.g. Makro zuweisen.
    6. LibreOffice neustarten
weitere Info's findest Du hier:
https://wiki.openoffice.org/wiki/Docume ... from_Basic
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.1.0.3 (x64) • AOO 4.1.8

gogo
Beiträge: 1020
Registriert: Sa 5. Feb 2011, 19:07

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von gogo » Di 17. Mai 2022, 02:44

1. Welches Betriebssystem hast Du?
2. kannst Du mit sed umgehen?
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
Beiträge: 1644
Registriert: Fr 10. Dez 2010, 10:01

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von karolus » Di 17. Mai 2022, 08:45

gogo hat geschrieben:
Di 17. Mai 2022, 02:44
1. Welches Betriebssystem hast Du?
2. kannst Du mit sed umgehen?
Du schlägst ernsthaft vor per sed in …xml-dateien rumzuwursteln, um (und anderem ) auch noch Schaltflächenzuordnungen anzupassen??
LO6.1 Rasbian OS (on ARMHF)

gogo
Beiträge: 1020
Registriert: Sa 5. Feb 2011, 19:07

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von gogo » Di 17. Mai 2022, 10:11

jep - funktioniert, und bietet sich für _einmaliges_ Umorganisieren an. Hab' ich schon ein paar mal gemacht, auch für große ODBs (>6MB) mit dutzenden Formularen. Es müssen im Wesentlichen nur die Bibliotheks und Modulnamen geändert werden. Ein Link sieht etwa so aus:

Code: Alles auswählen

<script:event-listener
 script:language="ooo:script"
 script:event-name="form:performaction"
 xlink:href="vnd.sun.star.script:MainExtension.MyTools.UeberschriftFormatieren?language=Basic&amp;location=application"
 xlink:type="simple"/>
Ein anderes Makro wird verlinkt wenn "MainExtension.MyTools.UeberschriftFormatieren" entsprechend ersetzt wird. Ist uU wesentlich einfacher als hunderte Buttons "umzuklicken", denn meist wird ja nicht der Makroname, sondern nur Bibliothek und Modul verändert.
Geht natürlich auch über einen Editor, aber content.xml ist einzeilig und die meisten 08/15 Editoren haben damit Probleme.
Zuletzt geändert von gogo am Mi 18. Mai 2022, 11:26, insgesamt 1-mal geändert.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

fbarc
Beiträge: 15
Registriert: Mi 8. Dez 2021, 02:47

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von fbarc » Di 17. Mai 2022, 13:34

gogo hat geschrieben:
Di 17. Mai 2022, 02:44
1. Welches Betriebssystem hast Du?
Das beste System der Welt :) Linux
gogo hat geschrieben:
Di 17. Mai 2022, 02:44
2. kannst Du mit sed umgehen?
sollte ich hinbekommen
gogo hat geschrieben:
Di 17. Mai 2022, 10:11
jep - funktioniert, und bietet sich für _einmaliges_ Umorganisieren an. Hab' ich schon ein paar mal gemacht, auch für große ODBs (>6MB) mit dutzenden Formularen. Es müssen im Wesentlichen nur die Bibliotheks und Modulnamen geändert werden. Ein Link sieht etwa so aus:

Code: Alles auswählen

<script:event-listener script:language="ooo:script" script:event-name="form:performaction" xlink:href="vnd.sun.star.script:MainExtension.MyTools.UeberschriftFormatieren?language=Basic&amp;location=application" xlink:type="simple"/>
Ein anderes Makro wird verlinkt wenn "MainExtension.MyTools.UeberschriftFormatieren" entsprechend ersetzt wird. Ist uU wesentlich einfacher als hunderte Buttons "umzuklicken", denn meist wird ja nicht der Makroname, sondern nur Bibliothek und Modul verändert.
Geht natürlich auch über einen Editor, aber content.xml ist einzeilig und die meisten 08/15 Editoren haben damit Probleme.
Wie komme ich an diese XML-Datei ran??
Meine Signatur steht auf der Rückseite

gogo
Beiträge: 1020
Registriert: Sa 5. Feb 2011, 19:07

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von gogo » Di 17. Mai 2022, 14:27

1.: Sicherheitskopie!
2.: überprüfe Punkt 1!
3.: damit Du ein Template hast: einen oder mehrere Buttons so umstellen, dass er mit der neuen Bibliothek/Modul-Struktur funktioniert.
4.: Die odb die Du verwendest entpacken (LO-Dateien sind einfache zip-Archive). In der Regel reicht es, wenn Du das im Dateimanager mit dem Kontextmenü machst: "entpacken" oder "entpacken und Unterordner selbstständig ermitteln" ...
Im Grundverzeichnis gibt's dann eine Datei namens "content.xml" ...
oder einfach mit folgendem Befehl die content.xml rausholen:

Code: Alles auswählen

unzip DateiXYZ.odb content.xml
5. in dieser Datei dann mal nach dem umgestellten Link suchen (geht einfach mit dem neuen Bibliotheksnamen) und ein paar umzustellende Vorkommen suchen - entsprechend ersetzen und dann
6.: alles wieder zurückpacken. Geht auch mit einem Update (DateiXYZ.odb und content.xml müssen sich im aktuellen Verzeichnis befinden):

Code: Alles auswählen

zip -u DateiXYZ.odb content.xml
Wenn die Ersetzerei komplexer ist, dann in der content.xml am einfachsten mit sed ersetzen. Einmal druchrauschen lassen und ggf. im Terminal kontrollieren. Eine Datei direkt umschreiben kann man mit sed dann am leichtesten mit der Option -i ("in place"). Da gibt's auch eine einfache Backup-Option z.B. "sed s/"Peter"/"Petra"/g -i.backup adressen.txt"
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

fbarc
Beiträge: 15
Registriert: Mi 8. Dez 2021, 02:47

Re: Makro aus Datei in Bibliothek verschieben

Beitrag von fbarc » Mi 18. Mai 2022, 02:46

@gogo

Vielen Dank... das war, was ich gebraucht hatte

Damit bin ich weitergekommen...
Meine Signatur steht auf der Rückseite

Antworten