DBLookupComboBox
En que caso usaremos?..
Supongamos que tenemos un formulario y queremos mostrar los datos de una tabla, por ejemplo la tabla «distrito».
Primero hacemos la conexion con la base de datos (con IBDatabase e IBTransaction) y luego conectamos con un IBTable. Asignamos la tabla distrito al IBTable. Este IBTable solo traera los campos id_distrito, distrito, id_departamento y poblacion que pertenecen a la tabla distrito. El DBLookupComboBox es un componente parecido al ComoboBox en apariencia pero permite enlazar a travez de la clave externa (foreign key) dos tablas y mostrar el campo que deseemos de la otra tabla.
Para el ejemplo de la imagen tenemos que traer el campo departamento de la tabla departamento para mostrar con los datos de la tabla distrito.
Sin el DBLookupComboBox | Con el DBLookupComboBox |
id_distrito: 1 | id_distrito: 1 |
distrito: Encarnacion | distrito: Encarnacion |
id_departamento: 7 | id_departamento: 7 |
poblacion: 93497 | departamento: Itapua |
poblacion: 93497 |
Configuracion del DBLookupComboBox
Usaremos la imagen anterior como ejemplo para la configuracion del componente.
Suponiendo que ya tenemos conexion con la base de datos, es decir, ya estan configuradas el IBDatabase y el IBTransaction.
1. Colocamos 2 ibtables y conectamos cada uno con una tabla: ibtable1 con distrito e ibtable2 con departamento.
2. Agregamos 2 datasource: datasource1 con ibtable1 y datasource2 con ibtable2.
3. Agregamos el DBLookupComboBox al formulario y editamos las siguientes propiedades:
3.1. DataSource: DataSource1 <- El datasource de la tabla principal (este caso distrito).
3.2. DataField: ID_DEPARTAMENTO <- La clave externa que se encuentra en la tabla principal.
3.3. ListSource: DataSource2 <- La tabla de donde vamos a traer el campo.
3.4. KeyField: ID_DEPARTAMENTO <- La clave por el cual se van a enlazar las tablas.
3.5. ListField: DEPARTAMENTO <- El campo que queremos que muestre en el DBLookupComboBox.