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

Code: Alles auswählen

 oDoc = XSCRIPTCONTEXT.getDocument()
ein Objekt erzeugt wird, sollte doch ab:

Code: Alles auswählen

oController = oDoc.
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 8-) ):

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..

Bild

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:
Bild

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 ?