![]() |
Sincronía entre 2 TDBLookupComboBox con la misma TQuery
Hola a tod@s.
Tengo un par de TDBLookupComboBox en un formulario de altas/modificación que utilizan la misma consulta. Ambos tienen el mismo "ListSource" y "KeyField" (codigo), pero uno muestra las siglas y otro el nombre en "ListField". Yo pensé que ambos estarían sincronizados: que al seleccionar las siglas aparecería el nombre o que al seleccionar el nombre aparecerían las siglas, pero no es así. Funcionan de un modo totalmente independiente. ¿Como se consigue ese efecto? ¿Debo utilizar otro componente? |
Me parece que si utilizas un ClienDataSet para proveerle los datos van a funcionar sincronizados, porque el registro activo es uno, en cambio con el TQuery navega por la consulta, creo que es asi.
Espero que te sirva. Saludos. |
Disculpa, se me olvidaron un par de datos.
Tengo Delphi7 y Oracle9i. Utilizo un DataSource para eso, ¿en que se diferencia del ClienDataSet? |
En el evento OnChange de cada uno le reseteas el Value al otro, solo recuerda desactivar el OnChange del combo al que le vas a cambiar el texto, porque sino se cicla...
|
Los TDBLookupComboBox no tienen el evento "OnChange". El TDataSource con el que enlazo la TQuery con ellos tiene el evento "OnDataChange" pero no me resulta fácil usarlo para rellenar esos componentes porque el formulario lo tengo por una parte y las consultas las tengo en un "DataModule".
|
En espera de encontrar una solución más satisfactoria tengo esto:
No me gusta demasiado pero por lo menos me permite seguir avanzando con el resto de las cosas. |
Entendería el uso de 2 controles si cada uno tuviese una ordenación, por ejemplo, el combo de siglas ordenado alfabéticamente por siglas y lo mismo para el DBLookUpCombo de nombres.
Si los dos LookupCombo tienen el mismo ListSource, que está ordenado por nombre, ¿por qué no usas un solo Lookupcombo? La propiedad Listfield a: siglas;nombre Así mostrará las dos cosas dentro del mismo Combo. Saludos |
Es una cuestión de comodidad para el operario, a petición suya. Tiene que seleccionar la empresa y quiere poder hacerlo usando ambos campos: las siglas en la mayoría de los casos y el nombre en situaciones muy contadas.
|
| La franja horaria es GMT +2. Ahora son las 19:00:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi