Forum > Spanish

[SOLVED] Funcionamiento del componente DBLookupComboBox

(1/1)

Galileo:
Estimados colegas, buenos días.

Aprovecho la comodidad del lenguaje para postear un pequeño inconveniente que noto con el componente DBLookupComboBox
Armé un ejemplo didáctico con dos tablas relacionadas y dos formularios, uno para visualizar la grilla y el segundo formulario para edición.

La primera tabla, Clientes, tiene un campo PROVINCIA_ que es el ID de la Provincia que le corresponde.
En el formulario de edición el DBLookupComboBox se carga con la lista de provincias disponibles.

El problema radica que, aunque los componentes visuales estén correctamente conectados, en Edición el DBLookupComboBox no se posiciona en el registro correspondiente durante la edición.
En el evento Show hay una línea comentada que activándola,  logra el funcionamiento esperado:

DBLookupComboBox1.KeyValue:=Form1.Dbf_clientes.FieldByName('PROVINCIA_').AsInteger;

He probado el ejemplo en Lazarus 1.6.2 en Linux (QT) y también en Windows (Windows 7). Y también en Lazarus 1.2.6 en Windows 7.

¿Es un error conceptual mío y me faltaría indicar alguna propiedad más en las opciones del DBLookupComboBox?

Desde ya, muchas gracias por sus comentarios.

Eduardo López

Edson:
No manejo mucho los componentes de base de datos, pero a mi me parece un comportamiento, hasta cierto punto, normal.

De todas formas tu ejemplo, me parece bastante didáctico.

Tal vez si consultas, en ingles te puedan dar más información.


Saludos.

Galileo:
Gracias Edson!
Voy a postear el problema en el foro en inglés.
Saludos, Eduardo.

Galileo:
Para aquellos que alguna vez se topen con el mismo problema aquí va la solución:

En el dataset correspondiente a la tabla "lookup" (en este caso PROVINCIAS) hay que indicar en la propiedad IndexFieldName  el campo que corresponde a la clave primaria de esta tabla, en mi ejemplo el campo provincia_id Asc

Particularmente en este ejemplo con tablas DBF debería crear un archivo de índice por el campo provincia_id de modo ascendente para que el mismo funcione.
De ese modo en el formulario de edición no es necesario incluir código adicional.

Eduardo.





Navigation

[0] Message Index

Go to full version