Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Cargar dbcombobox desde una tabla en mysql (https://www.clubdelphi.com/foros/showthread.php?t=82660)

asdberna 30-03-2013 07:10:56

Cargar dbcombobox desde una tabla en mysql
 
Buenas foristas del clubdelphi, he leido detenidamente varios hilos sobre el DBLookUpCombobox sobre el cargado de estos, pero no logro activar esa propiedad del ListSource, Keyfield y ListField..

bueno explico mi pequeño caso, tengo 2 tablas una de clientes y movimientos.

en mi formulario con un checkbox digo si es un cliente o sera un movimiento general.

cuando selecciono el checkbox habilito un dbcombobox u dblookupcombobox, pero siempre me carga un solo registro.

me gustaria saber como hacer para habilitar las opciones del dblookupcombobox. porque realmente no me aparece.

ya que quiero que al seleccionar el cliente en el dblookupcombobox o dbcombobox, me mueva segun el cliente la descripcion que tiene por defecto en el registro..


Muchas gracias de antemano.

PD: he leido como 2 horas sobre el llenado pero no he tenido suerte. o cual seria otra opcion. yo pense en otro formulario al seleccionar el check y seleccionarlo en una dbgrid y esa seleccion llevarmela al anterior formulario pero no lo veo optimo.

radenf 30-03-2013 13:13:42

Estimado asdberna :

No comprendo por qué no puedes asignarle las propiedades requeridas a un DBLookUpComboBox, aunque en mi experiencia nunca he logrado que los DBLookUpComboBox funcionen como yo quiero.
Para llenar un ComboBox desde una tabla puedes probar con el siguiente código:

Código Delphi [-]
ComboBox.Items.Clear;
with TuTabla do begin
try
TuTabla.DisableControls;
TuTabla.First;
while not TuTabla.Eof do begin
if ComboBox.Items.IndexOf(FieldByName('TUCAMPO').AsString)=-1 then
ComboBox.Items.Add(TuTabla.FieldByName('TUCAMPO').AsString);
TuTabla.Next;
end;
finally
TuTabla.EnableControls;
end;

En la propiedad OnChange del ComboBox debes programar lo necesario para que "mueva según el cliente la descripción que tiene por defecto en el registro", por ejemplo usando locate.

Código Delphi [-]
TuTabla.Locate('TUCAMPO',ComboBox.Text,[loPartialKey, loCaseInSensitive]);

Esto yo lo uso para Access, pero debiera funcionar en MySql.
Espero haber podido ayudarte.
Salu2

jpgonzalez 31-03-2013 05:17:23

Buenas asdberna...
No logro comprender bien cual es el problema que tienes con el DBLookUpComboBox

Solo puedo decir lo siguiente:

En el ListSource coloca el DataSource que trae los datos... es decir, suponiendo que tengas una QueryClientes enganchada a un DataSourceClientes, en la propiedad ListSource = DataSourceClientes (fijate que el datasource tenga la eferencia a la query)

En el KeyField, puedes poner el idCliente que traes en la QueryClientes
En el ListField puedes poner el nombre o el apellido... o el concat entre ambos.

Seteando estos tres campos, teniendo bien referenciado el DataSourceClientes con la QueryClientes y asegurandote que abres la Query no deberias tener problemas para mostrar todos tus clientes.

Espero te sirva, abrazo!

asdberna 03-04-2013 03:31:59

Gracias a ambos
 
Gracias a los 2 amigos, la idea deradenf, yo la hice, pero no lograba mover de acuerdo a los que tenia el combo, pero pues resulta que lo resolvi colocando un dbgrid que aparezca y al seleccionar cambio los source de la edit descripcion que se encuentra en la tabla movimientos, pero tengo que aprender eso del locale tomare en cuenta ello..

y con respecto a jpgonzalez pues no se en donde encuentro esas propiedades, por lo menos en mi DBLookUpComboBox no me aparecen las propiedades con que se dice que trabaja este componente.
no puedo poner fotos, pero si puedo te la envio al privado.

pD: gracias igual queria ver que posibilidades existía con eso, estoy algo nuevo en delphi pero me parece maravilloso aunque hay que conocerlo. actualmente estoy en un miniproyecto de un amigo de un tio que importa archivos y eso, tal vez al terminarlo coloque algunos modulos pero no se como explicarlos.. saludos.

radenf 05-04-2013 20:43:06

Estimado asdberna :

Con la función locate puedes posicionarte en un registro de una tabla o un Query que sea el mismo que seleccionas en otro Query o en el ComboBox de tu programa.
Saludos


La franja horaria es GMT +2. Ahora son las 14:55:29.

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