hallo leute, wollte mich mal wieder melden.. ihr fehlt mir :lol:
*hrhr*
also ich wollte euch nur erzählen was ich so mache (falls es jem. interessiert
)
also ich bin gerade in wien bei einer software-firma schnuppern ..
diese firma bietet verwaltungs-software an bwzüglich warenwirtschaft, rechnungswesen usw.
wie dem auch sei..
derzeit benötigt man für ihr programm auch ms-office, wenn man es voll auskosten möchte! einer der programmierer gab mir die aufgabe schnittstellen von open office zu finden, mit denen ihr programm mit open office kommunizieren könnte!
nun.. jeder kennt doch von euch 'Calc' oder (das gleiche wie excel
)
sie wollen, wie sie es auch unter excel tun, in Calc dynamischen code erstellen! damit das funktioniert wäre es natürlich nicht schlecht beim erstellen einer instanz von calc, auch gleich eine lib zu erstellen, und in dieser lib ein modul, in welches dann der source code reingestopft wird!
ich hab mir das seit montag angesehn, und muss sagen: ich verzweifle!
die open office doku ist nicht gerade sehr ausführlich gehalten! abgesehen davon sind viele funktionen und interfaces als 'abgelehnt' (deprecated) defniert! das heißt so viel wie: hier hast du die doku einer funktion die nicht richtig funktioniert .. O_o
unter anderem bin ich auf der suche nach methoden libs und module zu erstellen auf diese
doku gestoßen (man beachte etwas weiter oben das wort 'deprecated')
es kann sein dass ich zu doof dafür bin, aber im ganzen internet gibt es anscheinend eine doku über die objekte von open office, und deren methoden! das erstellen einer lib ist mir durch 'raten' gelungen. naja eigentlich mehr durch das suchen mithilfe des debuggers nach stichwörtern wie 'BasicLibraries'!
schließlich kam ich darauf das 'createLibrary' eine methode von BasicLibraries (= objekt) ist. schön ist, dass dies sogar funktioniert! weniger schön ist, dass die methode 'addModule' keine methode von BasicLibraries ist, sondern anscheinend eine von StarBasic!
wie dem auch sei.. es funktioniert nicht! die methode wird zwar gezündet und ausgeführt, aber leider wird nur die lib erstellt, und kein modul
vielleicht kann mir ja jemand von euch behilflich sein ...
es sei noch gesagt dass sich diese firma der sprache visual basic bedient
hier noch etwas code für jemand ders evtl. gebrauchen könnte
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Private Sub AddModule
Dim Document As Object
Dim Container As Object
Dim strPath As String
Dim Args(0) As New com.sun.star.beans.PropertyValue
' Giving path and open document
strPath = "file:///C:/test/AddToMe.ods"
Document = StarDesktop.loadComponentFromURL(strPath, "_blank", 0, Args())
' Hier müsste man normal noch überprüfen
' ob "MyNewLib" nicht bereits existend ist
' aber das lassen wir heute mal aus!
Call Document.BasicLibraries.createLibrary("MyNewLib", "", "", "")
' addModule() funzt nicht ..
Call Document.addModule("MyNewLib", "MyNewModule", "", "Sub Main End Sub")
Args(0).Name = "Wait"
Args(0).Value = True
' Save changes
Document.storeAsURL(strPath, Args())
' Close document
Document.Close(true)
End Sub ' AddModule()
|
:roll: