makros in MeineMakros-Standard-Modul1
Moderator: Moderatoren
makros in MeineMakros-Standard-Modul1
Hallo,
ich habe eine calc- Funktion geschrieben. Damit sie gefunden wird, muß sie in MeineMakros Standard- Modul1 gespeichert werden. Meine anderen Makros verteile ich an Anwender über *.oxt- Dateien.
Gibt es eine Möglichkeit, über ein Makro ein Makro in Standard Modul1 automatisch zu installieren?
Vielen Dank für eure Mühen.
Moritz
ich habe eine calc- Funktion geschrieben. Damit sie gefunden wird, muß sie in MeineMakros Standard- Modul1 gespeichert werden. Meine anderen Makros verteile ich an Anwender über *.oxt- Dateien.
Gibt es eine Möglichkeit, über ein Makro ein Makro in Standard Modul1 automatisch zu installieren?
Vielen Dank für eure Mühen.
Moritz
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: makros in MeineMakros-Standard-Modul1
Hallo Moritz,
die Funktion wird auch gefunden, wenn sie nicht in Modul1 steht.
Eine Verteilung über Extensions geht nicht (Library-Name der Erweiterung) ... aber Du kannst Dir den Code von XRAY reinziehen: dort ist die Erstellung und Bearbeitung von BASIC-Modulen behandelt.
die Funktion wird auch gefunden, wenn sie nicht in Modul1 steht.
Eine Verteilung über Extensions geht nicht (Library-Name der Erweiterung) ... aber Du kannst Dir den Code von XRAY reinziehen: dort ist die Erstellung und Bearbeitung von BASIC-Modulen behandelt.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: makros in MeineMakros-Standard-Modul1
Hallo, Winfried,
es stimmt, daß die Funktion anscheinend auch gefunden wird, wenn sie in einer anderen Bibliothek steht. Sie funktioniert dann aber nicht.
Gleiche Funktion in Standard Modul1 funktioniert korrekt, in anderer Bibliothek kommt die Fehlermeldung "#Wert!". Bei einem Schreibfehler kommt "err509". Die Funktion wird also tatsächlich gefunden. Ich wüßte aber nicht, wo dabei ein Fehler sein sollte. Ich habe das Ganze auch mit ganz einfachen Funktionen versucht, immer das gleiche Ergebnis.
Oder hast du einen Tip dazu? Es wär mir schon lieber, wenn die Funktion in einer eigenen Bibliothek stehen würde und damit auch automatisch in die Online- Updates einbezogen wäre.
WinXP SP3, OO 3.1
Danke
Moritz
es stimmt, daß die Funktion anscheinend auch gefunden wird, wenn sie in einer anderen Bibliothek steht. Sie funktioniert dann aber nicht.
Gleiche Funktion in Standard Modul1 funktioniert korrekt, in anderer Bibliothek kommt die Fehlermeldung "#Wert!". Bei einem Schreibfehler kommt "err509". Die Funktion wird also tatsächlich gefunden. Ich wüßte aber nicht, wo dabei ein Fehler sein sollte. Ich habe das Ganze auch mit ganz einfachen Funktionen versucht, immer das gleiche Ergebnis.
Oder hast du einen Tip dazu? Es wär mir schon lieber, wenn die Funktion in einer eigenen Bibliothek stehen würde und damit auch automatisch in die Online- Updates einbezogen wäre.
WinXP SP3, OO 3.1
Danke
Moritz
Re: makros in MeineMakros-Standard-Modul1
nur so ein gedanke....
greifst du möglicherweise in dem makro auf eine an anderer stelle definierte variable zu?
global geht auch nur auf modulebene - da kann man sich leicht vertun.
gruss eBayer
greifst du möglicherweise in dem makro auf eine an anderer stelle definierte variable zu?
global geht auch nur auf modulebene - da kann man sich leicht vertun.
gruss eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: makros in MeineMakros-Standard-Modul1
Hallo ebayer,
nein, mit anderen Variablen hat das nichts zu tun. Hab ich alles probiert. Es ist wohl so, daß benutzerdefinierte Funktionen tatsächlich nur in der Standard- Bibliothek funktionieren. Dort kann zwar ein eigenes Modul definiert werden, aber die Verwendung einer eigenen Bibliothek ist leider nicht möglich.
Also bin ich wieder am Anfang: Wie kann ein Makro in der Standard- Bibliothek benutzerfreundlich installiert werden?
Viele Grüße
Moritz
nein, mit anderen Variablen hat das nichts zu tun. Hab ich alles probiert. Es ist wohl so, daß benutzerdefinierte Funktionen tatsächlich nur in der Standard- Bibliothek funktionieren. Dort kann zwar ein eigenes Modul definiert werden, aber die Verwendung einer eigenen Bibliothek ist leider nicht möglich.
Also bin ich wieder am Anfang: Wie kann ein Makro in der Standard- Bibliothek benutzerfreundlich installiert werden?
Viele Grüße
Moritz
Re: makros in MeineMakros-Standard-Modul1
Hallo Moritz,
ich verwende seit Monaten meine eigenen Librarys, in denen ich alle Subroutinen und Dialoge gespeichert habe.
Auf diese Weise verteile ich dann auch meine Anwendung auf andere Rechner.
Einfach als Library123.oxt exportieren und mit Doppelklick am anderen Rechner importieren.
Darin verwende ich auch globale Variablen, die ich systemweit verwende.
Voraussetzung ist, daß die Library auch ordnungsgemäß beim Start geladen wird (Beispiel):
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Library3" ) Then
GlobalScope.BasicLibraries.loadLibrary( "Library3" )
End if
Unter irgendwelchen Voraussetzungen konnte ich nicht immer auf die Variablen zugreifen. Deshalb habe ich in der Library 2 Funktionen, mit denen ich die Variablen verwalte (Beispiel):
Global Function setMyDataSource(oQuelle) ' damit setze ich die Variable
oDatenquelle = oQuelle ' oDatenquelle ist eine globale Variable, die ich in der Library definiert habe
End Function
Global Function getMyDataSource() ' mit dieser Funktion hole ich mir die Variable
getMyDataSource = oDatenquelle
End Function
Vielleicht hilft's weiter.
Gruß eBayer
ich verwende seit Monaten meine eigenen Librarys, in denen ich alle Subroutinen und Dialoge gespeichert habe.
Auf diese Weise verteile ich dann auch meine Anwendung auf andere Rechner.
Einfach als Library123.oxt exportieren und mit Doppelklick am anderen Rechner importieren.
Darin verwende ich auch globale Variablen, die ich systemweit verwende.
Voraussetzung ist, daß die Library auch ordnungsgemäß beim Start geladen wird (Beispiel):
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Library3" ) Then
GlobalScope.BasicLibraries.loadLibrary( "Library3" )
End if
Unter irgendwelchen Voraussetzungen konnte ich nicht immer auf die Variablen zugreifen. Deshalb habe ich in der Library 2 Funktionen, mit denen ich die Variablen verwalte (Beispiel):
Global Function setMyDataSource(oQuelle) ' damit setze ich die Variable
oDatenquelle = oQuelle ' oDatenquelle ist eine globale Variable, die ich in der Library definiert habe
End Function
Global Function getMyDataSource() ' mit dieser Funktion hole ich mir die Variable
getMyDataSource = oDatenquelle
End Function
Vielleicht hilft's weiter.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: makros in MeineMakros-Standard-Modul1
Hallo, ebayer,
schön daß du mir immer wieder Hoffnung machst.
Doch ich glaube, es geht wirklich nicht.
Ganz einfaches makro:
Global Function Mist(dZahl As Double)
dZahl=13
end function
Aufruf als Funktion in einer Calc- Zelle =Mistl(9)
Funktioniert in der Standard- Bibliothek (Ergebnis 13)
Funktioniert nicht in einer eigenen Bibliothek (#WERT!)
Kannst Du gern selbst testen.
Eine Lösung ist, wenn auch nicht optimal, folgende:
Makro in der Standardbibliothek
Function StartMist(dzahl As double)
StartMist=Mist(dZahl)
end Funktion
Aufruf in Calc- Zelle mit '=StartMist(9)'
Aber auch dieses StartMist- Makro muß einmalig manuell in der Standardbibilothek instaliert werden. So würden aber zumindest Updates für das Mist- Makro funktionieren.
Viele Grüße
Moritz
schön daß du mir immer wieder Hoffnung machst.
Doch ich glaube, es geht wirklich nicht.
Ganz einfaches makro:
Global Function Mist(dZahl As Double)
dZahl=13
end function
Aufruf als Funktion in einer Calc- Zelle =Mistl(9)
Funktioniert in der Standard- Bibliothek (Ergebnis 13)
Funktioniert nicht in einer eigenen Bibliothek (#WERT!)
Kannst Du gern selbst testen.
Eine Lösung ist, wenn auch nicht optimal, folgende:
Makro in der Standardbibliothek
Function StartMist(dzahl As double)
StartMist=Mist(dZahl)
end Funktion
Aufruf in Calc- Zelle mit '=StartMist(9)'
Aber auch dieses StartMist- Makro muß einmalig manuell in der Standardbibilothek instaliert werden. So würden aber zumindest Updates für das Mist- Makro funktionieren.
Viele Grüße
Moritz
Re: makros in MeineMakros-Standard-Modul1
Hallo Moritz,
Du hast Recht, ich konnte Deine Beispiele mit dem gleichen Ergebnis nachvollziehen.
Allerdings bin ich auf folgenden Lösungsansatz gekommen, weiß allerdings nicht, ob es Dir was bringt.
Wenn ich nämlich Dein Mistmakro im Dokument platziere und aus dem Makro eines aus einer Library aufrufe, funktioniert es.
Jedenfalls ist damit bewiesen, daß ich auf Libraryfunktionen zugreifen kann.
Gruß eBayer
In dem Dokument:
function Mist(zahl)
Mist = xMist(zahl)
end function
In der Library:
Global function xMist(zahl)
xMist = zahl*zahl
msgbox "hallo"
end function
Du hast Recht, ich konnte Deine Beispiele mit dem gleichen Ergebnis nachvollziehen.
Allerdings bin ich auf folgenden Lösungsansatz gekommen, weiß allerdings nicht, ob es Dir was bringt.
Wenn ich nämlich Dein Mistmakro im Dokument platziere und aus dem Makro eines aus einer Library aufrufe, funktioniert es.
Jedenfalls ist damit bewiesen, daß ich auf Libraryfunktionen zugreifen kann.
Gruß eBayer
In dem Dokument:
function Mist(zahl)
Mist = xMist(zahl)
end function
In der Library:
Global function xMist(zahl)
xMist = zahl*zahl
msgbox "hallo"
end function
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: makros in MeineMakros-Standard-Modul1
Da gibt es ein neues Problem:
Variante 1: Die Calc- Datei wird von einem externen Programm aus einem vorhandenen Quell-Datei neu erzeugt. Da kann das Makro enthalten sein, also unproblematisch.
Variante 2: Die Calc- Datei ist bereits vorhanden und wird von einem externen Programm aufgerufen. Wenn das Makro fehlt, müsste es eingefügt werden, aber wie? Alternativ wäre es auch möglich, die Datei neu aus der Quelldatei zu erzeugen und die Tabellen aus der alten in die neue Datei zu übertragen. Das ist aber ein ziemlicher Aufwand, den ich vermeiden möchte.
Moritz
Variante 1: Die Calc- Datei wird von einem externen Programm aus einem vorhandenen Quell-Datei neu erzeugt. Da kann das Makro enthalten sein, also unproblematisch.
Variante 2: Die Calc- Datei ist bereits vorhanden und wird von einem externen Programm aufgerufen. Wenn das Makro fehlt, müsste es eingefügt werden, aber wie? Alternativ wäre es auch möglich, die Datei neu aus der Quelldatei zu erzeugen und die Tabellen aus der alten in die neue Datei zu übertragen. Das ist aber ein ziemlicher Aufwand, den ich vermeiden möchte.
Moritz
Re: makros in MeineMakros-Standard-Modul1
schau mal dort nach: (sieht schlecht aus)
http://www.nabble.com/OOo-BASIC-Calc-ex ... 30077.html
http://www.nabble.com/OOo-BASIC-Calc-ex ... 30077.html
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
sieht doch gut aus!
Hallo, ebayer
Vielen Dank für deinen Tip. Mit python ist es möglich, Funktionen mittels *.oxt- Datei zu installieren, so daß sie wie die Calc- Funktionen genutzt werden können. Sogar die Verwendung des Funktionsassistenten ist möglich. Perfekt.
http://www.biochemfusion.com/doc/Calc_addin_howto.html
Die lange Diskussion hat doch was gebracht.
Vielen Dank Dir und Jan Holst Jensen.
Moritz
Vielen Dank für deinen Tip. Mit python ist es möglich, Funktionen mittels *.oxt- Datei zu installieren, so daß sie wie die Calc- Funktionen genutzt werden können. Sogar die Verwendung des Funktionsassistenten ist möglich. Perfekt.
http://www.biochemfusion.com/doc/Calc_addin_howto.html
Die lange Diskussion hat doch was gebracht.
Vielen Dank Dir und Jan Holst Jensen.
Moritz
Re: makros in MeineMakros-Standard-Modul1
Bitte..... dein problem hat mich halt interessiert.... obwohl ich mit calc nicht soviel am hut habe.
aber super, daß du eine lösung gefunden hast.
Gruss eBayer
aber super, daß du eine lösung gefunden hast.
Gruss eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008