Allgemeine Frage zur Interfaces und Methoden

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

Moderator: Moderatoren

thinklink
*
Beiträge: 11
Registriert: So, 25.09.2005 21:22
Wohnort: Montabaur
Kontaktdaten:

Allgemeine Frage zur Interfaces und Methoden

Beitrag von thinklink »

Hallo,


über folgenden Service werden durch Interfaces bestimmt Methoden bereitgestellt.
oXform = createUnoService("com.sun.star.xforms.Model")

Nun möchte ich einige dieser Methoden auf das aktuelle Dokument anwenden
welches ich mir über folgenden Aufruf erzeuge.

oAktuellesDocument = StarDesktop.CurrentComponent


Wenn ich nun Methoden nutzen möchte aus "..xforms.Model" wie kann man da den Bezug auf das aktuelle Dokument herstellen?

oTest = oXform.getBinding(sBinding1) '???


** Funktion ist da nur der Bezug zum aktuellen Dok. fehlt **
oTest = createUnoService("com.sun.star.xforms.Model")
Xray.Xray oTest

oInst = oTest.getDefaultInstance()
oKind = oInst.getFirstChild()
sBind = oKind.getNodeName()
MsgBox sBind
**************************************************



Besten Dank
Gruß Andreas
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Andreas,

ohne es auszuprobieren - nur aus der Logik heraus:

Versuch, den Service doch direkt an das Dokument zu binden:

Code: Alles auswählen

oAktuellesDocument = StarDesktop.CurrentComponent 
oXform = oAktuellesDokument.createUnoService("com.sun.star.xforms.Model")
Müsste eigentlich funktionieren.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
thinklink
*
Beiträge: 11
Registriert: So, 25.09.2005 21:22
Wohnort: Montabaur
Kontaktdaten:

Laufzeitfehler: Eigenschaft oder Methode nicht gefunden

Beitrag von thinklink »

Hallo Thomas,

besten Dank für die schnelle Anwort. Hatte es auch schonmal auf die Art versucht - dann bringt er immer folgenden Fehler:

Laufzeitfehler: Eigenschaft oder Methode nicht gefunden

Sub Test
Dim oAktuellesDocument
Dim oXform

oAktuellesDocument = StarDesktop.CurrentComponent
oXform = oDoc.createUnoService("com.sun.star.xforms.Model")
Xray.Xray oXform
End Sub
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo thinklink,

hmm, na gut. Hab grad mal einen Blick in die API geworfen. Das ist wohl etwas komplizierter.
Leider fehlt mir jetzt die Zeit, mich intensiv damit zu beschäftigen.

Aber: Schau dir mal das Interface "com.sun.star.xforms.XModel" an, dort findest du unter anderem die Methoden getInstance und getInstanceDocument sowie die Methode createBinding. Ich denke, dort musst du suchen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
thinklink
*
Beiträge: 11
Registriert: So, 25.09.2005 21:22
Wohnort: Montabaur
Kontaktdaten:

Beitrag von thinklink »

Hallo Thomas,

denke jetzt hab ich´s.....

******************************************************
com.sun.star.xforms.XModel - war richtig...

Über das Interface "XFormsUIHelper1" hab ich alle Methoden die
man für die Arbeit mit XForms benötigt.
******************************************************

und es funktioniert echt gut...

Gruss Andreas
Antworten