Combobox / Listbox - Äquivalent zu "ValueMember" ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Combobox / Listbox - Äquivalent zu "ValueMember" ?

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von DPunch » Fr, 13.11.2009 22:40

Stephan hat geschrieben:Du solltest einfach einmal eine Beispieldatei hochladen oder genauere Aussagen machen und konkretere Code-Beispiele zur Verfügung stellen, dann könnten die Mitleser hier diskutieren und versuchen konkrete Ratschläge zu geben.
Konkrete Code-Beispiele kann ich natürlich nur für meine Lösung geben, bei der ich allerdings sehr an der Geschwindigkeit und Effizienz zweifle.

Im Anhang mal mein Ansatz mit Erklärungen, worauf ich hinaus will.

In dem Zusammenhang allerdings direkt noch eine Frage:
Gibt es sowas wie AddActionLock bzw LockControllers auch für einen Dialog? Oder macht man sowas komplett über das "Mutter"-Dokument?

Edit: Bei bei spuckt das Dokument erstmal eine Fehlermeldung aus, wenn ich direkt nach dem Öffnen den Dialog aufrufen will - keine Ahnung (bzw hab ich schon, aber ich weiss nicht, wie ich es beheben kann ;) ), woran das liegt, aber spätestens beim 2. Versuch sollte es funktionieren.

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von gigabert » Fr, 13.11.2009 16:35

OK, lässt sich aus der ListBox wohl doch nur der ausgewählte Eintrag oder dessen Position in der Liste auslesen. Ich versteh aber auch nicht, was dann der Eintrag "Art des Listeninhalts. Werteliste" und die Einträge bei "Listeninhalt" bewirken sollen.

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von gigabert » Fr, 13.11.2009 16:23

DPunch hat geschrieben:Das Problem ist, dass bei dem Beispiel die ListBox eine ListBox auf einem Base-Formular ist und somit die Option der Datenanbindung von Haus aus mitbringt.

Ich glaube nicht, dass man Gleiches mit in einer ListBox in einem (Calc-)Dialog machen kann - oder besser: wenn es gehen würde, hätte ich nicht die leiseste Ahnung, wie.

Trotzdem Danke natürlich für die Idee.
Hallo,

du kannst in einem Calc-Dokument genauso eine ListBox einfügen (Symbol-Leiste Formular-Steuerelemente). Beim Anlegen startet auch ein Wizard, bei dem du eine Datenquelle anlegen kannst. Kannst aber auch abbrechen und Werte direkt bei den Eigenschaften eintragen. Zum Beispiel bei Listen-Einträge, oder bei Daten: Datenfeld/Listeninhalt. Dann werden auch Einträge angezeigt und denen entsprechende Werte zugeordnet. Ich hab's jetzt noch nicht getestet, dürfte aber ähnlich wie im Base-Formular funktionieren.

Gruss
Bert

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von Stephan » Fr, 13.11.2009 15:48

Gibt da es eine "elegantere" Lösung oder auch nur Idee zu?
Du solltest einfach einmal eine Beispieldatei hochladen oder genauere Aussagen machen und konkretere Code-Beispiele zur Verfügung stellen, dann könnten die Mitleser hier diskutieren und versuchen konkrete Ratschläge zu geben.

Das Makros, ihrer Natur nach, langsamer sind als kompillierte Sprachen ist so, nur man kann an manchen Stellen u.U. was machen, jedoch gibt es keine generellen Ratschläge und es ist kaum sinnvoll alles hinzuschreiben was möglich wäre.
Ob man z.B. in Calc-Tabellenblättern sucht, oder in Arrays bzw. wie man dort sucht, bzw. wie man Arrays, aus welchen Quellen, einliest macht im konkreten Fall hinsichtlich Geschwindigkeit teils riesige UNterschiede.

Als 'Einstimmung' sei zum Beispiel auf den Thread:
http://www.oooforum.org/forum/viewtopic.phtml?t=20783
verwiesen, der sich nur(!) einmal mit Sortieralgorithmen befasst und das auch nur(!) andeutungsweise und bei dem trotzdem schon riesige Geschwindigkeitsunterschiede deutlich werden.


Gruß
Stephan

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von DPunch » Fr, 13.11.2009 15:29

Das Problem ist, dass bei dem Beispiel die ListBox eine ListBox auf einem Base-Formular ist und somit die Option der Datenanbindung von Haus aus mitbringt.

Ich glaube nicht, dass man Gleiches mit in einer ListBox in einem (Calc-)Dialog machen kann - oder besser: wenn es gehen würde, hätte ich nicht die leiseste Ahnung, wie.

Trotzdem Danke natürlich für die Idee.

Re: Combobox / Listbox - Äquivalent zu "ValueMember" ?

von eBayer » Fr, 13.11.2009 14:06

Du kannst auch den Key abfragen!
Schau mal in das beiliegende Testprogramm (hab es aus einem anderen Forum)..... ist zwar als ooBase-Formular realisiert, aber es zeigt die Funktionsweise.
Gruß eBayer
Dateianhänge
ListBox2ndCol.odb
(15.89 KiB) 158-mal heruntergeladen

Combobox / Listbox - Äquivalent zu "ValueMember" ?

von DPunch » Fr, 13.11.2009 12:17

Aloha mal wieder.

Das heutige Thema meiner Fragestunde sind Combo- bzw. Listboxen.

In .NET gibt ja es z.B. "DisplayMember" und "ValueMember", das eine wird zur Auswahl angezeigt, das andere ist ein hinter der Auswahl steckender Wert.

In OOo Basic lässt sich offensichtlich nur der (die) ausgewählte(n) String(s) abrufen (und natürlich die Position).

Gibt es da eine Möglichkeit, das ValueMember per Work-Around o.Ä. sozusagen zu imitieren?

Meine erste Idee war ein Array, dass an der ausgewählten Position der Box einfach den entsprechenden Wert stehen hat.
Aber sobald die Box interaktiv aus Eingaben gefüllt werden soll (als Suchfunktion, die bei jedem eingegebenen Buchstaben in einem Suchfeld ein neues Ergebnis in die Box packt), müsste ja dann jedes Mal parallel auch ein neues Array gefüllt werden, was mir performancetechnisch nicht wirklich günstig erscheint.

Gibt da es eine "elegantere" Lösung oder auch nur Idee zu?

Ziel:
Ich habe eine relativ große (Calc-)Liste mit Phrasen zu Gefahrhinweisen, bestehend aus der Phrase und einem Kuerzel dazu (ähnlich einem Primary Key).
Nun soll in diesen Phrasen in einem Dialog interaktiv gesucht werden können (bei eingabe von "augen" in einer Suchmaske z.B. sollen alle entsprechenden Phrasen zur Auswahl gestellt werden).
Im weiteren Verlauf muss ich jedoch sowohl mit der Phrase (also dem String, der ja dann auch in der Box steht), als auch mit dem Kuerzel weiterarbeiten.
Die Kuerzel dann per Suche über den String wieder aus der Liste zu holen, dauert in der Regel zu lange.

Nach oben