Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como sincronizar 2 DBLookupComboBox (https://www.clubdelphi.com/foros/showthread.php?t=73263)

JerS 12-04-2011 02:20:10

como sincronizar 2 DBLookupComboBox
 
Buenas necesito sincronizar dos DBLookupComboBox como se hace con un combobox cualquiera Ejm:

Código Delphi [-]
Combobox1.itemindex:=Combobox2.itemindex;



Gracias :D

ecfisa 12-04-2011 02:54:28

Hola Jers.

Los DBLookupComboBox a diferencia de los ComboBox estan en relación de dependencia con el DataSet asociado, y ese detalle no lo incluiste.

Con los datos que pusiste sólo puedo decirte como 'clonar' el segundo combo:
Código Delphi [-]
  DBLookupComboBox2.ListSource:=  DBLookupComboBox1.ListSource;
  DBLookupComboBox2.ListField:=   DBLookupComboBox1.ListField;
  DBLookupComboBox2.KeyField:=    DBLookupComboBox1.KeyField;
  DBLookupComboBox2.DataSource:=  DBLookupComboBox1.DataSource;
  DBLookupComboBox2.DataField:=   DBLookupComboBox1.DataField;
  DBLookupComboBox2.KeyValue:=    DBLookupComboBox1.KeyValue;

Tal vez saques una idea de como implementarlo en tu caso...

Un saludo.

JerS 12-04-2011 02:59:32

Cita:

Empezado por ecfisa (Mensaje 396627)
Hola Jers.

Los DBLookupComboBox a diferencia de los ComboBox estan en relación de dependencia con el DataSet asociado, y ese detalle no lo incluiste.

Con los datos que pusiste sólo puedo ponerte como 'clonar' el segundo combo:
Código Delphi [-]
  DBLookupComboBox2.ListSource:=  DBLookupComboBox1.ListSource;
  DBLookupComboBox2.ListField:=   DBLookupComboBox1.ListField;
  DBLookupComboBox2.KeyField:=    DBLookupComboBox1.KeyField;
  DBLookupComboBox2.DataSource:=  DBLookupComboBox1.DataSource;
  DBLookupComboBox2.DataField:=   DBLookupComboBox1.DataField;
  DBLookupComboBox2.KeyValue:=    DBLookupComboBox1.KeyValue;

Tal vez te dé una idea de como implementarlo en tu caso...

Un saludo.

lo que sucede es que tengo esta consulta

Código SQL [-]
Select cedula,(concat(nombre," ",apellido))as nombre from personal

en un DBLookupCombobox la cedula y en otro el nombre cuando haga click en uno me muestre en el otro combo el correspondiente

ecfisa 12-04-2011 03:57:30

Hola JerS.

A ver si te entendí bien.. Hablamos de una sola tabla y querés que el segundo combo refleje los cambios del primero y viceversa ¿ no ?

Entonces creo que agregaría el campo ID en la consulta:
Código SQL [-]
  SELECT PERSONAL_ID, CEDULA, (CONCAT(NOMBRE," ",APELLIDO)) AS NOMAPEL FROM PERSONAL

Y ajustaría las propiedades de los DBLookupComboBoxs así:

Combo1:
Código Delphi [-]
  
  DBLookupComboBox1.KeyField:= PERSONAL_ID;
  DBLookupComboBox1.ListField:= NOMAPEL;
  DBLookupComboBox1.ListSource:= DataSource1;
Combo2:
Código Delphi [-]
  DBLookupComboBox2.KeyField:= PERSONAL_ID;
  DBLookupComboBox2.ListField:= CEDULA;
  DBLookupComboBox2.ListSource:= DataSource1;

Y para sincronizarlos usaría el evento OnCloseUp de los DBLookupsComboBox:
Código Delphi [-]
...
procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
  DBLookupComboBox2.KeyValue:= DBLookupComboBox1.KeyValue;
end;

procedure TForm1.DBLookupComboBox2CloseUp(Sender: TObject);
begin
  DBLookupComboBox1.KeyValue:= DBLookupComboBox2.KeyValue;
end;
Espero haberte interpretado bién...

Un saludo.

JerS 12-04-2011 04:49:08

Muchas gracias era exactamente lo que necesitaba


La franja horaria es GMT +2. Ahora son las 03:59:06.

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