Seite 1 von 2
Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 00:11
von StefKe
Oh, dank alle Helfer

gleich vorab...
Ich möchte in Calc ein Textfeld auslesen:
Code: Alles auswählen
def read_textfield():
oDoc = XSCRIPTCONTEXT.getDocument()
oController = oDoc.getCurrentController()
oSheet = oDoc.Sheets[0]
oForm = oSheet.forms.getByIndex(0)
oNumField1 = oForm.getByName("Textfeld 1")
oView = oController.getControl(oNumField1)
nValue = oView.Model.string
print(nValue)
in BASIC läuft der Code, in Python wird in Zeile 5 gemeckert.
AttributError: forms
Wie muss die Zeile richtig lauten?
Danke
Stefan
Re: Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 09:32
von karolus
python möchte die Attribute gerne in der richtigen Schreibweise: also nicht (…forms, fORMS, FORMS, … ) sondern einfach nur …Forms oder via Method …getForms() und wichtig bei Methodenaufrufen sind die Klammern dahinter, ohne die wird die ganze Methode nur an das Symbol vor dem Gleichheitszeichen geklebt
Re: Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 12:03
von StefKe
Danke, aber in Zeile 5, bzw. Zeile 6 wird noch immer die Fehlermeldung erzeugt:
Code: Alles auswählen
def read_textfield():
oDoc = XSCRIPTCONTEXT.getDocument()
oController = oDoc.getCurrentController()
oSheet = oDoc.Sheets[0]
oForm = oSheet.Forms.getByIndex(0) # AttributError: Forms
# oForm = oSheet.getForms() # AttributError: getForms
oNumField1 = oForm.getByName("Textfeld 1")
oView = oController.getControl(oNumField1)
nValue = oView.Model.string
print(nValue)
So ein bisschen fehlt mir die Autovervollständigung. Wenn mit
ein Objekt erzeugt wird, sollte doch ab:
alle verfügbaren Methoden und Attribute angezeigt werden? Tut es aber nicht? Ist das normal, oder kann das behoben werden?
Oder anders herum: Wie oder wo sind die verfügbaren Objektmethoden einzusehen?
Tut mir leide wenn ich mit den Fragen nerve, aber wer nicht fragt....
Und danke für die Hilfe

Stefan
Re: Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 15:51
von karolus
Danke, aber in Zeile 5, bzw. Zeile 6 wird noch immer die Fehlermeldung erzeugt:
Entschuldige, hab ich übersehen, da liegt ja immer noch die Drawpage dazwischen (übrigens auch in Basic

):
Code: Alles auswählen
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
form = sheet.DrawPage.Forms[0]
print( form.ElementNames )
field = form["Textfeld 1" ]
print(field.String)
Re: Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 16:10
von karolus
Hallo
Oder anders herum: Wie oder wo sind die verfügbaren Objektmethoden einzusehen?
Zum einen gibts dafür
nicht erst seit gestern …
und eine grosse Teilmenge der Informationen aus MRI gibts auch per Codevervollständigung:
aus einer interaktiven jupyter-notebook instanz
Für letzteres brauchts vmtl. ein wenig »Vorbereitung« bei Interesse einfach nochmal nachfragen!
Re: Textfeld mit Python auslesen
Verfasst: Mi 26. Jun 2024, 16:39
von StefKe
Hallo, danke für den Code - läuft:-).
Mit der MRI-Erweiterung muss ich mich noch vertraut machen....
Stefan
Re: Textfeld mit Python auslesen
Verfasst: Do 27. Jun 2024, 12:40
von StefKe
Hallo, die MRI-Tools sind schon geil

, aber: alle Menuelinks sind deaktivert, ein Zugriff auf die IDL-Ref. ist nich möglich..
auf der Suche nach einer Lösung fand ich diesen
Thread
mit einem Hinweis auf das
XRAY-Tool, aber auch dieser Hinweis führt ins Leere.
Gibt es dafür eine Lösung, oder einfach so belassen?
Danke - Stefan
Re: Textfeld mit Python auslesen
Verfasst: Do 27. Jun 2024, 14:50
von karolus
Da steht doch was du tun sollst!
⇒Tools⇒Configuration⇒ dein Pfad zu deinem Browser
Re: Textfeld mit Python auslesen
Verfasst: Do 27. Jun 2024, 18:44
von StefKe
Nu, leider ist unter Tools ->Configuration nix erreichbar.
siehe Screener - ich hoffe er funzt:
ich hab nebenbei OpenOffice installiert. Da funzt es perfekt. Sollte ich besser AOO nutzen?
Danke - Stefan
Re: Textfeld mit Python auslesen
Verfasst: Do 27. Jun 2024, 19:03
von karolus
ich hab nebenbei OpenOffice installiert. Da funzt es perfekt. Sollte ich besser AOO nutzen?
Nein – besser nicht AOO wurschtelt immer noch mit python2 rum obwohl die aktive Weiterentwicklung des 2-zweiges gegen 2020 ausgelaufen ist ( und zwar mit dedizierter Ansage schon 10 bis 12 Jahre vorher !!! )
welches OS benutzt du, und welche LO-version ?