Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ayuda Lookup ComboBox (https://www.clubdelphi.com/foros/showthread.php?t=64788)

Cristalero 19-04-2009 14:31:23

Ayuda Lookup ComboBox
 
Hola a tod@s!

Tengo el siguiente problema con un DbLookup Combobox.

Os situo:

Tengo dos formularios, fMain y fEditor.

Desde un botón en fMain abro fEditor cargando en un Grid los datos de una tabla (hasta aquí correcto).

Ahora quier visualizar en un DBLookupComboBox los datos de un campo (por código) y lo hago de la siguiente manera:

Código del botón:
fEditor.tPaisLu.DatabaseName:=rutaDeLaTabla;
fEditor.tPaisLu.TableName:='miTabla.dbf';
fEditor.dstPaisLu.DataSet:=fEditor.tPaisLu;
fEditor.DBLookupCbPais.DataField:='CODPAIS';
fEditor.DBLookupCbPais.DataSource:=fMain.dsDestino;
fEditor.DBLookupCbPais.DataSource.DataSet:=fMain.tDestino;
fEditor.DBLookupCbPais.ListField:='NOMBRE';
fEditor.DBLookupCbPais.KeyField:='ID_PAIS';

tDestino es la tabla que visualizo en un DBGrid en el fEditor y se encuentra en fMain.

tPaisLu es la tabla que quiero ver en el DBComboBox y se encuentra en fEditor.

Es decir visualizo un campo pero en realidad se guarda otro. No hay forma de que se visualice nada.

Alguna idea?

Un saludo a tod@s!

javier7ar 19-04-2009 15:10:13

Le estas errando de propiedada, no tenes que completar la propiedad DataSource del dbLookUpComboBok sino la propiedad ListSource.
Fijate en este hilo que esta puesto como funciona

http://www.clubdelphi.com/foros/showthread.php?p=344817

Saludos

Cristalero 19-04-2009 15:37:01

Según lo que me indícas, quedaría de la siguiente manera?

fEditor.tPaisLu.DatabaseName:=ruta + '\DB\';
fEditor.tPaisLu.TableName:='Pais.dbf';
fEditor.dstPaisLu.DataSet:=fEditor.tPaisLu;
fEditor.DBLookupCbPais.DataField:='CODPAIS';

//Ahora le indico donde lo quiero guardar
fEditor.DBLookupCbPais.DataSource.DataSet:=fMain.tDestino;

//Ahora le indico que quiero listar
fEditor.DBLookupCbPais.ListSource:=fEditor.dstPaisLu;
fEditor.DBLookupCbPais.ListField:='NOMBRE';
fEditor.DBLookupCbPais.KeyField:='ID_PAIS'

Me da un error!

javier7ar 19-04-2009 16:00:28

y el error seguro que te da aca

Código Delphi [-]
fEditor.DBLookupCbPais.DataSource.DataSet:=fMain.tDestino;

deberia ser asi:

Código SQL [-]
fEditor.DBLookupCbPais.DataSource:=fMain.dsDestino;

donde fMain.dsDestino es un DataSource que en su propiedad DataSet tiene a fMain.dsDestino

Saludos

Cristalero 19-04-2009 16:49:03

El código es correcto. No es que me de error, sino que no me carga ninngún dato en el combo.


La franja horaria es GMT +2. Ahora son las 07:42:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi