Recent

Author Topic: [SOLVED] Funcionamiento del componente DBLookupComboBox  (Read 4748 times)

Galileo

  • New Member
  • *
  • Posts: 21
[SOLVED] Funcionamiento del componente DBLookupComboBox
« on: March 13, 2017, 04:05:53 pm »
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
« Last Edit: March 17, 2017, 04:08:48 pm by Galileo »

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Funcionamiento del componente DBLookupComboBox
« Reply #1 on: March 14, 2017, 08:42:35 pm »
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.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

Galileo

  • New Member
  • *
  • Posts: 21
Re: Funcionamiento del componente DBLookupComboBox
« Reply #2 on: March 16, 2017, 02:24:00 pm »
Gracias Edson!
Voy a postear el problema en el foro en inglés.
Saludos, Eduardo.

Galileo

  • New Member
  • *
  • Posts: 21
Re: Funcionamiento del componente DBLookupComboBox
« Reply #3 on: March 17, 2017, 04:08:27 pm »
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.






 

TinyPortal © 2005-2018