FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ADO y TDBLookUpComboBox
Hola compañeros,
Puede que pregunte una tonteria pero no consigo mi proposito. Tengo una BBDD ADO con una tabla de clientes (TClients) y necesito mostrar un desplegable con los nombres de clientes (Nomclient) y cuando seleccionen uno de ellos, que me devuelva el código de este cliente (idClient). No se que componente debo hacer servir TDBLookUpComboBox, TDBListBox, TDBComboBox, ...? Ni como hacer que solo me muestre el nombre y me devuelva el código? También se deberían poder seleccionar todos a la vez, pero como consigo introducir una linea de '<Todos>' que esté seleccionada por defecto. "Sólo" es esto jejeje . Gracias. |
#2
|
||||
|
||||
Para tu propósito has de usar el componente TDBLookUpComboBox y has de configurarlo así:
DBLookUpComboBox.ListSource := <DataSourceClientes>; DBLookUpComboBox.ListFields := 'Nomclient'; DBLookUpComboBox.KeyField := 'idClient'; Después, en las propiedades "DataSource" y "DataField", especificarías en que tabla y campo almacenarás el valor "idClient" seleccionado. |
#3
|
|||
|
|||
Gracias jmariano, ya funciona.
En cuanto a lo de introducir una linea de '<Todos>' que esté seleccionada por defecto, se podría hacer de alguna manera. |
#4
|
|||
|
|||
Te recomiendo que uses los componentes de RX-Lib para este tipo de cosas. Te permite poner un item por defecto como el que decis. Ademas seleccionas un Cliente y de manera interna maneja el codigo de cliente.
|
#5
|
|||
|
|||
Gracias Mauro,
Pero prefiriría no usar las rx.lib . No se puede conseguir con el TDBLookUpComboBox? |
#6
|
||||
|
||||
Pues nop, no se puede porque el TDBLookUpComboBox no permite añadir elementos manualmente (éstos los obtiene de la base de datos).
Si necesitas que el usuario pueda hacer una selección de todos los clientes podrías, por ejemplo, añadir un CheckBox al lado del DBLookUpComboBox y que, cuando esté pulsado, inhabilite el DBLookUpComboBox (indicando, lógicamente, la selección de todos los clientes). La otra alternativa es usar un componente de terceros como indicó Mauro.NET. |
#7
|
||||
|
||||
Una opción sería agregar <todos> a la tabla de clientes con un código especial que indique que son todos. De esta forma, <todos> aparecerá en el DBLookupComboBox y bastará examinar el id asociado para saber que se trata de todos los clientes.
// Saludos |
#8
|
|||
|
|||
Gracias por vuestra ayuda.
|
|
|
|