Wegen weiterer Prüfungen möchte ich bei einer Listbox nach manueller Auswahl den ausgewählten Wert wissen. Durch SelectedItem bzw. CurrentValue erhalte ich den Anzeigewert (String), aber nicht den dahinterliegenden Wert aus der Hilfstabelle. Bei der Definition des Formulars bin ich so vorgegangen: numerisches Feld ausgewählt, ersetzt durch Listenfeld, Daten mit SQL-Befehl: "select ean, id from fibu.bk_object". Die Einträge werden korrekt angezeigt; für die Abfrage habe ich verschiedene Verfahren probiert.
Variante 1 (übernommen aus
ListBox2ndCol.odb):
Code: Alles auswählen
oForm = thisComponent.drawpage.forms.MainForm.frmOrder
MyBox = oForm.getByName("obj_id")
msgBox MyBox.ValueItemList(MyBox.SelectedItems(0))
Variante 2 (Auswertung des Ereignisses "Aktion ausführen"):
Code: Alles auswählen
MyBox = oEvent.Source.Model
objId = MyBox.ValueItemList(MyBox.SelectedItems(0))
Mit dem integrierten Basic-Debugger konnte ich feststellen, dass im Beispiel ListBox2ndCol.odb die
ValueItemList mit den korrekten Werten gefüllt ist, bei mir ist sie leer und wird angezeigt als "String(0 to -1)". Welche Erklärung kann es für die leere Liste der Werte geben? Jürgen
PS. Im SELECT-Befehl verzichte ich wegen der Übersichtlichkeit auf unnötige Gänsefüßchen. Versuchsweise habe ich sie eingefügt, aber das hat nichts geändert.
Nachtrag 1 (20:34 Uhr): oForm.getInt(6) kann ich nicht benutzen, weil es sich um einen neuen, noch nicht gespeicherten Datensatz handelt. Fehlermeldung (SQLException): "Der Cursor zeigt vor die erste bzw. hinter die letzte Zeile."
Nachtrag 2 (19.09.2012 um 09:00 Uhr): Es ist mir klar, dass ihr mir keine direkte Hilfe geben könnt, schon weil ich zu wenig Informationen liefern kann. Aber vielleicht gibt es ein paar Tipps, in welche Richtung ich suchen kann.
Wegen weiterer Prüfungen möchte ich bei einer Listbox nach manueller Auswahl den ausgewählten Wert wissen. Durch SelectedItem bzw. CurrentValue erhalte ich den Anzeigewert (String), aber nicht den dahinterliegenden Wert aus der Hilfstabelle. Bei der Definition des Formulars bin ich so vorgegangen: numerisches Feld ausgewählt, ersetzt durch Listenfeld, Daten mit SQL-Befehl: "select ean, id from fibu.bk_object". Die Einträge werden korrekt angezeigt; für die Abfrage habe ich verschiedene Verfahren probiert.
Variante 1 (übernommen aus [url=http://de.openoffice.info/viewtopic.php?p=122192#p122192]ListBox2ndCol.odb[/url]):
[code]oForm = thisComponent.drawpage.forms.MainForm.frmOrder
MyBox = oForm.getByName("obj_id")
msgBox MyBox.ValueItemList(MyBox.SelectedItems(0))[/code]
Variante 2 (Auswertung des Ereignisses "Aktion ausführen"):
[code]MyBox = oEvent.Source.Model
objId = MyBox.ValueItemList(MyBox.SelectedItems(0))[/code]
Mit dem integrierten Basic-Debugger konnte ich feststellen, dass im Beispiel ListBox2ndCol.odb die [b]ValueItemList [/b]mit den korrekten Werten gefüllt ist, bei mir ist sie leer und wird angezeigt als "String(0 to -1)". Welche Erklärung kann es für die leere Liste der Werte geben? Jürgen
PS. Im SELECT-Befehl verzichte ich wegen der Übersichtlichkeit auf unnötige Gänsefüßchen. Versuchsweise habe ich sie eingefügt, aber das hat nichts geändert.
Nachtrag 1 (20:34 Uhr): oForm.getInt(6) kann ich nicht benutzen, weil es sich um einen neuen, noch nicht gespeicherten Datensatz handelt. Fehlermeldung (SQLException): "Der Cursor zeigt vor die erste bzw. hinter die letzte Zeile."
Nachtrag 2 (19.09.2012 um 09:00 Uhr): Es ist mir klar, dass ihr mir keine direkte Hilfe geben könnt, schon weil ich zu wenig Informationen liefern kann. Aber vielleicht gibt es ein paar Tipps, in welche Richtung ich suchen kann.