Organisation Macros

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Organisation Macros

Beitrag von theindless »

Hallo,

nachdem ich festgestellt habe, dass es langsam fast etwas unübersichtlich wird, mal eine organisatorische Frage an die Mitglieder, die mehr programmieren:

Wie organisiert ihr eure Macros??
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Organisation Macros

Beitrag von Karolus »

Hallo

1. Nimm nicht für jede sub ein neues Modul.
2. gib deinen Modulen "sprechende" Namen, an denen man erkennen kann was darin getan wird. (z.B calc, calcfunctions, writer, etcpp. )
3. dito 2. gilt auch für die Namen von Sub's und Function's
4. Wenn in deinen Subs Codeblöcke in identischer Form mehrfach vorkommen lagere diese Blöcke in functions( ggf. mit Argumentübergabe) aus
5. Wenn du in mehreren Subs immer das "gleiche" tust siehe 4.
6. Speichere Dokument-spezifischen Code in eben diesem Dokument und müll dir damit nicht "meine Makros" zu.
7. und 8. usw. alles das was ich hier vergessen habe..

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Organisation Macros

Beitrag von balu »

Hallo theindless,
Wie organisiert ihr eure Macros??
Gegenfrage: Was verstehst Du darunter?

Ich bin ja wohl noch nicht die Leuchte wenns ums Programmieren geht, aber dennoch versuche ich je nach Art und Umfang des Makros nicht alles in ein Modul zu packen. Das hängt aber auch sehr stark davon ab was das Makro alles macht. Ich hab da z.B. eine Datei mit einem Makro welches aus 9 Modulen besteht. Und jedes Modul beinhaltet ein anderes "Thema".
Hier mal ein paar Beispiele.
  • Mod1: Deklarieren und defenieren von Variablen, sowie vorinitialisieren von bestimmten Prozessen.
  • Mod2: Die Hauptaktion des Makros
  • Mod3: Datei öffnen und speichern Dialoge
  • Mod4: Eine einfache Captcha Erkennung
Und so weit wie es geht ist jedes Modul so aufgebaut, das dort der Ablauf, auch wenn er aus meherern SUBs besteht, der Reihe nach von oben nach unten gegliedert ist. Mit anderen Worten, wenn die Hauptprozedur (z.B. Sub Haupt) in einem Modul mehrere Unterprozeduren (Sub UnterEins ... Sub UnterSechs) beinhaltet, dann ordne ich diese Unterprozeduren von oben nach unten an.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Organisation Macros

Beitrag von theindless »

Hallo,
Karolus hat geschrieben:1. Nimm nicht für jede sub ein neues Modul.
2. gib deinen Modulen "sprechende" Namen, an denen man erkennen kann was darin getan wird. (z.B calc, calcfunctions, writer, etcpp. )
3. dito 2. gilt auch für die Namen von Sub's und Function's
4. Wenn in deinen Subs Codeblöcke in identischer Form mehrfach vorkommen lagere diese Blöcke in functions( ggf. mit Argumentübergabe) aus
5. Wenn du in mehreren Subs immer das "gleiche" tust siehe 4.
6. Speichere Dokument-spezifischen Code in eben diesem Dokument und müll dir damit nicht "meine Makros" zu.
1. habe ich bisher so gehandhabt, da mir sonst der Umfang zu groß wäre, allerdings werden es trotzdem ziemlich viele

2./3. kämpfe ich mit, versuche ich aber einzuhalten

4./5. so blöd es klingt, aber daran habe ich noch nicht gedacht; muß aber mal nachlesen, wie es mit der Gültigkeit von functions/subs ausschaut, d.h. ob ich auch functions/subs aus anderen Modulen/Dialogen/Bibliotheken aufrufen kann und wie dann die Gültigkeit der Parameter ist

6. grmpf.... ich kämpfe geschäftlich etwas mit der "Makrosicherheit", da diese auf "hoch" gestellt ist und eigentlich nicht geändert werden darf; Macros im Dokument werden leider deaktiviert, in "meine Makros" nicht

Danke Karolus für die Tipps!!
balu hat geschrieben:Hier mal ein paar Beispiele.

Mod1: Deklarieren und defenieren von Variablen, sowie vorinitialisieren von bestimmten Prozessen.
Mod2: Die Hauptaktion des Makros
Mod3: Datei öffnen und speichern Dialoge
Mod4: Eine einfache Captcha Erkennung

Und so weit wie es geht ist jedes Modul so aufgebaut, das dort der Ablauf, auch wenn er aus meherern SUBs besteht, der Reihe nach von oben nach unten gegliedert ist. Mit anderen Worten, wenn die Hauptprozedur (z.B. Sub Haupt) in einem Modul mehrere Unterprozeduren (Sub UnterEins ... Sub UnterSechs) beinhaltet, dann ordne ich diese Unterprozeduren von oben nach unten an.
Klingt auch alles sehr sinnvoll!

Mod1 überrascht mich etwas... was steht dann da??
z.B. Global oDoc = ThisComponent
Global oSheet = oDoc.Sheets.getByName("Tabelle1")

Aber ansonsten auch ein sehr guter Tip, den ich bisher nicht beachtet habe.

Ich sehe schon, ihr habt da System... da ist meines Chaos dagegen und teilweise sind die Macros kaum zu finden.
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Organisation Macros

Beitrag von balu »

Hallo theindless,
Mod1 überrascht mich etwas... was steht dann da??
z.B. Global oDoc = ThisComponent
Global oSheet = oDoc.Sheets.getByName("Tabelle1")
Im Prinzip ja. Aber auch Sachen wie z.B.

Code: Alles auswählen

	mycell1 = oTempSheet.getCellRangeByName("A3")
	fNameQuelle = oDialog1.getControl("Label3")
Also Variablennamen die einmal initialisiert werden die dann aber überall zum Einsatz kommen.

Und im übrigen ist meine Auflistung eine Ergänzung zum Punkt 2 von Karos Punktelist.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Organisation Macros

Beitrag von theindless »

Hallo,
balu hat geschrieben:Und im übrigen ist meine Auflistung eine Ergänzung zum Punkt 2 von Karos Punktelist.
Ist das so gemeint, oder meinst du Punkt 4./5.?
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Organisation Macros

Beitrag von balu »

Hallo Leute,
Ist das so gemeint, oder meinst du Punkt 4./5.?
Nein nicht 4./5., sondern 2
Karolus hat geschrieben: 2. gib deinen Modulen "sprechende" Namen, an denen man erkennen kann was darin getan wird. (z.B calc, calcfunctions, writer, etcpp. )
balu hat geschrieben:
  • Mod1: Deklarieren und defenieren von Variablen, sowie vorinitialisieren von bestimmten Prozessen.
  • Mod2: Die Hauptaktion des Makros
  • Mod3: Datei öffnen und speichern Dialoge
  • Mod4: Eine einfache Captcha Erkennung
Das wird in den jeweiligenen Modulen "getan".

Der momentanige Unterschied ist der, das meine Module nicht solche lange Namen tragen. Das sieht dann schon ehern passender weise so aus.
  • Name Modul1: Initialisieren
  • Name Modul2: Fertigstellen
  • Name Modul3: FileFolderPicker
  • Name Modul4: Captcha
Natürlich wird wohl jeder sein eigenes Rezept haben wie er sein Makro organisiert. Aber wie schon gesagt, hängt das auch immer vom Makro selber ab. Du kannst das in etwa auch mit ner Bedienungsanleitung für nen Fernseher vergleichen. Da gibt es ein Kapitel das sich nur um die Grundhandhabung der Bedienelemente befasst, ein anderes für die Bildeinstellung, eins für Sender suchen, eins für Fehlerbehebung ..... Und das entspricht dann in ungefähr Punkt 2 von Karos Auflistung.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Organisation Macros

Beitrag von theindless »

Hallo balu,

nu hab ichs verstanden :D

Sehr sinnvoll... vielen Dank.

Insbesondere mit der Benennung (Module, Subs/Functions, Variablen,..) habe ich noch so meine Probleme, da ich gerne ein "allgemeines Schema" entwickeln möchte, so dass ich im Zweifelsfall z.B. nicht lange nach Variablen-Bezeichnungen suchen muss, sondern diese für jede sub logisch herleiten kann.

a la oDoc, oSheet, ...
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Organisation Macros

Beitrag von Stephan »

grmpf.... ich kämpfe geschäftlich etwas mit der "Makrosicherheit", da diese auf "hoch" gestellt ist und eigentlich nicht geändert werden darf
das ist doch vollkommen in Ordnung so
Macros im Dokument werden leider deaktiviert
bei Stufe "hoch" in den Sicherheitseinstellungen werden nur nichtsignierte Makros in Dokumenten deaktiviert, also einfach Makros signieren und nichts wird deaktiviert, die Hilfedatei (F1) von OOo benennt es korrekt:

"Nur signierte Makros von vertrauenswürdigen Quellen dürfen ausgeführt werden. Nicht signierte Makros werden deaktiviert.
Vertrauenswürdige Quellen können auf dem Register "Vertrauenswürdige Quellen" festgelegt werden. Nur signierte Makros von einer vertrauenswürdigen Quelle dürfen ausgeführt werden. Außerdem darf jedes Makro, das von einem vertrauenswürdigen Dateispeicherort stammt, ausgeführt werden."



Gruß
Stephan
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Organisation Macros

Beitrag von theindless »

Hallo Stephan,

ich habe mich schon informiert, dass ich mir über selfcert ein Zertifikat machen könnte,

ABER

ich bin eigentlich nur Anwender im Betrieb und darf eigentlich nichts tun, was Gefahr schaffen könnte.
Bedeutet... ich darf eigentlich nichts, außer normale Dateien schreiben.
Musst du dir vorstellen, wie Vista, wo alle Dinge, die normalerweise eine Rückfrage auslösen, gesperrt sind und auch sonst fast alles verboten ist.

Folglich könnte ich Problem kriegen, wenn eine Datei mit meinem Zertifikat auftaucht.
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: Organisation Macros

Beitrag von gogo »

Pack' Deine Makros in Extensions (Makros verwalten / Button "Verwalten" / Bibliotheken / Export ... / als Extension exportieren)

Der Vorteil ist, dass Du damit auch noch einen Status Quo schaffst - eine einmal exportierte Bibliothek ist dann immer wieder reaktivierbar.
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Organisation Macros

Beitrag von theindless »

Hallo gogo,

danke für den Tip!

Wäre leider nur für privat etwas, weil ich betrieblich nichts (d.h. nichts bzw. gar nichts] installieren darf, auch keine Extensions :-(

Das Leben wäre so einfach, wenn ich die Programme/Extensions etc. hätte, die ich haben möchte... :-)
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Antworten