Kombinationsfeld automatisch aufklappen
Moderator: Moderatoren
Kombinationsfeld automatisch aufklappen
Ich habe in einem Formular ein "Tabellenkontrollfeld" mit diversen Spalten, u.a. mit einem Kombinationsfeld.
Ich möchte erreichen, dass das Kombinationsfeld beim Erreichen per Tab-Taste oder Returntaste "automatisch" aufklappt und der erste Eintrag angezeigt wird. Leider habe ich bislang kein Makro o.ä. gefunden.
Da ich hier neu bin: Ich hoffe die Frage an der richtigen Stelle gestellt zu haben.
Für eine Hilfe wäre ich sehr dankbar.
Ich möchte erreichen, dass das Kombinationsfeld beim Erreichen per Tab-Taste oder Returntaste "automatisch" aufklappt und der erste Eintrag angezeigt wird. Leider habe ich bislang kein Makro o.ä. gefunden.
Da ich hier neu bin: Ich hoffe die Frage an der richtigen Stelle gestellt zu haben.
Für eine Hilfe wäre ich sehr dankbar.
Re: Kombinationsfeld automatisch aufklappen
Hallo, die Frage ist nicht zu schlicht oder unpassend formuliert. Ich sehe das Problem darin, dass im Designer und im Handbuch die Eigenschaften mit deutschen Begriffen benutzt werden, aber für Makros englische Bezeichner benötigt werden; außerdem ist die Objektstruktur bei OO etwas undurchsichtig. Nach der Suche nach geeigneten Eigenschaften für Kontrollfelder bin ich auf folgende Idee gekommen:
Mit dem Parameter in der Klammer wird der Name der Listbox geholt; mit dem Konstrukt davor wird die Hierarchie der Elemente im Formular-Navigator durchgegangen. Das musst du natürlich an deine Situation anpassen.
Viel Erfolg! Jürgen
- Eine Listbox (das scheint der englische Begriff für das Kombinationsfeld zu sein) kann mit der Methode makeVisible(Pos) ein bestimmtes Element anzeigen. Die Beschreibung "scrolls" deutet darauf hin, dass dazu die Liste aufgeklappt wird.
- Diese Methode wird aufgerufen mit einem Makro, das dem Ereignis "Bei Fokuserhalt" zugeordnet wird.
- Ob das auch mit einer Listbox funktioniert, die in das Tabellenkontrollfeld eingebettet ist, habe ich nicht untersucht.
Code: Alles auswählen
Sub myListboxEnter( oEvent as Object )
' bestimme das Feld
myListbox = thisComponent.drawpage.forms.MainForm.IndexByName( oEvent.Source.Model.Name )
myListbox.makeVisible(2)
End Sub
Viel Erfolg! Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Kombinationsfeld automatisch aufklappen
Hallo Jürgen, besten Dank für Deine Bemühungen.
Leider gibt es ein Problem. Ich habe zum -Testen- ein Formular mit zwei Textfeldern und einem
Kombinationsfeld erstellt. Das Kombi hat Deine Prozedur (bei Focuserhalt) bekommen.
Bei Abarbeiten der Prozedur im Einzelschrittmodus kommt die Fehlermeldung:
..Eigenschaft oder Methode nicht gefunden: DrawPage
Beim Erreichen des Kombifeldes im Formular kommt die Fahlermeldung:
... Eigenschaft oder Methode nicht gefunden: IndexByName
Nochmal zum Sinn der Aktion:
Ich möchte mit dem "automatischen" Aufklappen erréichen, dass die Dateneingabe im
Datagrid mit mehreren Spalten (und mehreren Kombifeldern) ohne Maus funktioniert.
Die Dateneingabe wäre damit erheblich einfacher.
Vielleicht kannst Du ja nochmal antworten.
Schon jetzt besten Dank
Leider gibt es ein Problem. Ich habe zum -Testen- ein Formular mit zwei Textfeldern und einem
Kombinationsfeld erstellt. Das Kombi hat Deine Prozedur (bei Focuserhalt) bekommen.
Bei Abarbeiten der Prozedur im Einzelschrittmodus kommt die Fehlermeldung:
..Eigenschaft oder Methode nicht gefunden: DrawPage
Beim Erreichen des Kombifeldes im Formular kommt die Fahlermeldung:
... Eigenschaft oder Methode nicht gefunden: IndexByName
Nochmal zum Sinn der Aktion:
Ich möchte mit dem "automatischen" Aufklappen erréichen, dass die Dateneingabe im
Datagrid mit mehreren Spalten (und mehreren Kombifeldern) ohne Maus funktioniert.
Die Dateneingabe wäre damit erheblich einfacher.
Vielleicht kannst Du ja nochmal antworten.
Schon jetzt besten Dank
Re: Kombinationsfeld automatisch aufklappen
Das Problem mit "drawpage unbekannt" u.ä. hatte ich gestern Nachmittag auch. Es scheint so zu sein, dass innerhalb einer Ereignisbehandlung thisDocument und dessen Elemente nicht immer im richtigen Umfang vorhanden sind; auch habe ich noch keine schöne Übersicht über die Eigenschaften und Methoden von Event.Source und Model gefunden. Aber bei meinen eigenen Versuchen gestern bin ich auf folgende kurze Lösung gekommen:
"Quelle des Ereignisses" ist natürlich das Feld, das das Ereignis auslöst. Bei StarBasic bin ich mir nach wie vor unsicher, ob das Ergebnis der ersten Zuweisung vom Datentyp Object ist (also nicht genauer spezifiziert) oder ob es vom gewünschten Typ Listbox ist.
Wenn es dir nur darum geht, dass auf die Maus verzichtet werden kann, dann gewöhn' dir einfach die Tastenkombination Alt + (Pfeil runter) an.
Jürgen
Nachtrag: Listbox ist falsch; dazu gehört die Übersetzung Listenfeld. Da ich im Moment keine Idee für einen Test mit einem Kombinationsfeld habe, kann ich nur raten, dass Combobox korrekt ist. Für die Lösung deines Problems könnte das aber irrelevant sein, da eine Combobox eine Art erweiterter Listbox ist:
Code: Alles auswählen
Sub myListboxEnter( oEvent as Object )
' bestimme das Feld
myListbox = oEvent.Source
myListbox.makeVisible(2)
End Sub
Wenn es dir nur darum geht, dass auf die Maus verzichtet werden kann, dann gewöhn' dir einfach die Tastenkombination Alt + (Pfeil runter) an.

Nachtrag: Listbox ist falsch; dazu gehört die Übersetzung Listenfeld. Da ich im Moment keine Idee für einen Test mit einem Kombinationsfeld habe, kann ich nur raten, dass Combobox korrekt ist. Für die Lösung deines Problems könnte das aber irrelevant sein, da eine Combobox eine Art erweiterter Listbox ist:
So gut wie alle Eigenschaften und Methoden, die es zur Listbox gibt - siehe Dokumentation -, gelten deshalb auch für eine Combobox.used when a list box combined with a static text control or an edit control is needed.
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Kombinationsfeld automatisch aufklappen
Hallo zusammen,
Ich empfehle Euch die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit könnt ihr alle OOo-Dokumente hinsichtlich ihres Aufbaues/Eigenschaften/Methoden analysieren.
z.B. mit dem Befehl:
oder
und dann weiter über und
... aber dann das Makro nicht mit "bei Fokuserhalt" sondern z.B. mit "Maustaste losgelassen" starten, sonst kommt ihr in eine Schleife die nur mit dem Taskmanager abzubrechen ist.
Gruß R
Ich empfehle Euch die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit könnt ihr alle OOo-Dokumente hinsichtlich ihres Aufbaues/Eigenschaften/Methoden analysieren.
z.B. mit dem Befehl:
Code: Alles auswählen
xray oEvent
Code: Alles auswählen
mri oEvent
Code: Alles auswählen
.Source
Code: Alles auswählen
.Model
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Kombinationsfeld automatisch aufklappen
Ich weiß, das muss ich mir vornehmen.
Das habe ich auch gemerkt. Es gibt noch eine Notlösung: Haltepunkt setzen; wenn der Debugger dort stoppt, kann das Formular geschlossen werden.... aber dann das Makro nicht mit "bei Fokuserhalt" sondern z.B. mit "Maustaste losgelassen" starten, sonst kommt ihr in eine Schleife die nur mit dem Taskmanager abzubrechen ist.

Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC