makro umwandeln

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

Moderator: Moderatoren

susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

makro umwandeln

Beitrag von susapo »

Hallo,
ich habe ein umfangreiches Makroprogramm geschrieben, das in einem Calc Dokument eingebunden ist. Also über thiscomponent kann ich auf die sheets zugreifen, alles bestens. Aber ich muß noch viel an dem Code ändern, deshalb hätte ich den Code gerne getrennt von dem Calc Dokument. sodass ich die Code datei auswechseln kann, und andere User schreiben weiterhin ihre Daten in die Calc Tabellen. Dazu hab ich zwei Fragen.
Wie erhalte ich den Code als eigenständige Datei? wie greife ich dann auf mein Calc Dokument zu. (Calc und programm sollen im selben Verzeichnis liegen, das soll aber frei wählbar sein, also das Programm soll zunächst mal feststellen, wie sein Pfad heißt)
danke für Tipps
Grüße susapo
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: makro umwandeln

Beitrag von Stephan »

Wie erhalte ich den Code als eigenständige Datei?
Innerhalb der Basic-IDE z.B. mit der Schaltfläche "BASIC speichern".
wie greife ich dann auf mein Calc Dokument zu. (Calc und programm sollen im selben Verzeichnis liegen
Du kannst nicht mit Code der 'in Dateien' gespeichert ist auf andere Dateien zugreifen bzw. höchstens indem Du die andere Datei als Dateiobjekt refenzierst, womit aber jegliches "ThisComponent" hinfällig ist.

Wenn der Code nicht in derselben Datei gespeichert werden soll, dann ist es der richtige Weg ihn in lokale Makrobibliotheken speichern (Extras-Makros-Makros verwalten-Basic-Meine Makros) und nicht 'in Dateien'.


Gruß
Stephan
susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Re: makro umwandeln

Beitrag von susapo »

Danke für deine Antwort, Stephan.

meinst du "Basic exportieren"? Basic speichern gibt's bei mir nicht.

ich merke dass ich mich unklar ausgedrückt habe. Ja, ich will die Calc-Datei als Dateiobjekt refenzieren!

Stell dir eine exe datei und eine Datenbank vor, beide im gleichen Verzeichnis. Ich kann die exe Datei mit einer neuen Version überschreiben und die Datenbank bleibt davon unberührt.

ich könnte ja meine Makros in eine leeres Calc oder Writer Dokument kopieren und die Makros aus dem "datenbank" Calc Doku entfernen.


ich glaube ich bin grad ein bisschen verwirrt ....
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: makro umwandeln

Beitrag von Stephan »

meinst du "Basic exportieren"?
ja
Ja, ich will die Calc-Datei als Dateiobjekt refenzieren!
Ja, natürlich. Nur warum formulierst Du:
Also über thiscomponent kann ich auf die sheets zugreifen, alles bestens.
wenn das doch garkeine Rolle spielt?

Vorbehaltlich das auch ich mich irren kann bin ich mir jedenfalls sehr sicher das es absolut unmöglich ist ein Calc-Dokument per ThisComponent zu referenzieren wenn das Makro das das tun soll aus einem anderen Dokument heraus gestartet wird.

Der einzige, indirekte, Weg um das zu bewerkstelligen wäre, meines Wissens, ein Makro in der eigentlichen Daten-Datei zu starten, was z.B. dann geht wenn das Makro als Autostartmakro gesetzt ist und man die Datei einfach per exterenem Makro öffnet (Parameter MacroexecMode beachten) , woraufhin das Autostart-Makro automatisch startet.
Stell dir eine exe datei und eine Datenbank vor, beide im gleichen Verzeichnis. Ich kann die exe Datei mit einer neuen Version überschreiben und die Datenbank bleibt davon unberührt.
Und im Sinne der exe-Datei gibt es bei OO/LO sog. Extensions und damit würde man Dein Problem normalerweise lösen.

Einstiegsseite Extension-Entwicklung:
https://wiki.openoffice.org/wiki/Docume ... Extensions

Updates für Extensions:
https://wiki.openoffice.org/wiki/Docume ... Extensions

(wobei es genauso üblich ist neue Extensionversionen einfach per Extensionmanager 'Drüberzuinstallieren'.



Gruß
Stephan
susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Re: makro umwandeln

Beitrag von susapo »

Hallo Stephan, danke für deine Mühe und deine Geduld!

mit den Extension werde ich mich später mal befassen. Ich hab jetzt "auf die Schnelle" mein calc Doku kopiert, das eine Daten genannt und das andere Programm, hab aus Daten allen Code entfernt und aus Programm alle Daten und eine referenz auf das daten Dokument gemacht. Beide werden jetzt "hidden" geöffnet und ich hab nur noch das große Dialogfenster, womit meine Kollegen arbeiten und sie kommen nicht mehr direkt an die Tabellen.

Ich hab noch ein Problem m it dem Datenaustausch zu meinem Webspace, aber dafür mach ich einen neuen Thread auf.

Grüße Michael
Hiker
******
Beiträge: 590
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: makro umwandeln

Beitrag von Hiker »

susapo hat geschrieben: Mo, 26.10.2020 12:45 ...
Stell dir eine exe datei und eine Datenbank vor, beide im gleichen Verzeichnis. Ich kann die exe Datei mit einer neuen Version überschreiben und die Datenbank bleibt davon unberührt.
...
wenn Du die Daten in einer Datenbank hast, kannst Du genau das machen. Bei meinem Sqlite-Projekt kann ich jederzeit die .odb-Datei ändern, oder sogar verschiedene nutzen. Die Daten werden immer über die angemeldete Datenverbindung geholt.

Leider sind Calc-Dateien als Datenquelle zwar möglich, aber read-only, also keine direkte Möglichkeit für Dich.
Ich schätze eine Anpassung wäre nicht wenig Arbeit fur Dich.

Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
susapo
**
Beiträge: 22
Registriert: Fr, 31.01.2020 19:47

Re: makro umwandeln

Beitrag von susapo »

Hallo Jörn,
danke für den Tipp. Ich plane schon eine Neufassung des ganzen Projekts entweder in Python oder Kotlin, aber erst nächstes Jahr, wenn ich mehr Zeit habe. Die jetzige version ist soweit arbeitsfähig und wird so deutlich nicht mehr verändert.
Grüße Michael
Antworten