[gelöst] Listbox ersten Eintrag auswählen

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

Moderator: Moderatoren

Karolus
********
Beiträge: 7521
Registriert: Mo, 02.01.2006 19:48

Re: Listbox ersten Eintrag auswählen

Beitrag von Karolus »

Hallo
Das ist jetzt etwas seltsam, aber ich kann aus deinem Dokument bei aktivem Blatt 'Bestellformular' folgenden Code ohne Fehlermeldung ausführen:

Code: Alles auswählen

def listbox_untersuchen():
    doc = context.getDocument()
    sel = doc.getCurrentSelection()
    controller = doc.getCurrentController()
    sheet = sel.getSpreadsheet()
    page = sheet.DrawPage
    form = page.Forms.getByName('Form')
    boxcontrol = controller.getControl(form.getByName('List Box 7'))

    #mri.inspect(boxcontrol)
    boxcontrol.selectItemPos(0,1) #funktioniert !
 
Edit: es liegt bei dir daran das das Blatt 'Bestellformular' zum Zeitpunkt des Aufrufs nicht aktiv ist, das musst du im Code nachholen.

Code: Alles auswählen

def listbox_untersuchen():
    doc = context.getDocument()
    sel = doc.getCurrentSelection()
    controller = doc.getCurrentController()
    sheet = doc.Sheets.getByName('Bestellformular')
    page = sheet.DrawPage
    form = page.Forms.getByName('Form')
    controller.setActiveSheet( sheet ) #'Bestellformular' aktiv setzen
    boxcontrol = controller.getControl(form.getByName('List Box 7'))

    #mri.inspect( boxcontrol )
    boxcontrol.selectItemPos(0,1) #funktioniert !
 
Das funktioniert auch aus jedem anderen Tabellenblatt.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
CamuelSpenser
**
Beiträge: 32
Registriert: Mo, 19.12.2011 11:52

Re: Listbox ersten Eintrag auswählen

Beitrag von CamuelSpenser »

Ahoi :)

Vielen Dank Karolus nun hat es endlich hingehauen.
*mir selbst ma ne Ohrfeige geb" stimmt hatte vergessen zu erwähnen, dass das Makro ausgeführ wird wenn man auf der Seite Plattenerfassung was ändert >.<

Jedenfalls kann ich jetzt auch nachvollziehen woher der Fehler kam :)

Herzlichen Dank
Mir freundlichen Grüßen
Camuel
Antworten