Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ComboBox y claves compuestas (https://www.clubdelphi.com/foros/showthread.php?t=1947)

Roy 03-07-2003 17:22:37

ComboBox y claves compuestas
 
Hola a todos...

Necesito cargar una lista (Combo, DBCombo, DBLookup) con datos de una tabla que tiene clave compuesta (3 campos)... de tal forma que cuando se selecciona un elemento de la lista se actualice la información en una grilla, por ejemplo. Es decir, deseo poder recuperar los valores de los 3 códigos para cada selección en la lista.

¿ Qué objeto uso ? ¿ cómo hago ?

Roy

delphi.com.ar 03-07-2003 17:40:21

Puedes utilizar un TDBLookupComboBox con cualquier campo en el KeyField, y cuando selecciona uno tomas la PK del DataSet, ya que este se moverá hasta el registro seleccionado.

Saludos!

Roy 03-07-2003 19:20:31

Cita:

Posteado originalmente por delphi.com.ar
Puedes utilizar un TDBLookupComboBox con cualquier campo en el KeyField, y cuando selecciona uno tomas la PK del DataSet, ya que este se moverá hasta el registro seleccionado
Había pensado en eso, pero no me funcionó. Con tu comentario, ahora pienso que puedo estar haciendo algo mal. Yo:

1. Ubico un TDBLookComboBox en mi formulario.
2. Asigno valores para ListSource y ListField (un campo nombre, tipicamente).
3. Asigno valor a KeyField (de la lista).

Entonces:

1. Si a KeyField asigno un campo calculado o el mismo campo nombre que está para mostrarse (ListField), entonces el Combo se comporta de manera extraña y abre la lista para seleccionar un ítem, pero al seleccionarlo, no lo muestra. Pareciera que no selecciona nada. No hay manera que se vea el ítem seleccionado.
2. Si a KeyField asigno un campo cualquiera o uno que sea parte de PK, entonces cada vez que selcciono un ítem de la lista, selecciona el primero que cumple con la condición del KeyField... Al abrir otra vez la lista, muestra seleccionados todos los que cumplen con la condición del KeyField; normalmente, varios !! :( .

¿ Alguna idea ? ¿ Estoy haciendo algo mal ? Gracias desde ya.

Roy

jachguate 04-07-2003 02:56:19

Puede que este equivocado... pero en KeyField podes poner una lista de campos separados por punto y coma.

Digamos EMPRESA;SUCURSAL;CLIENTE

Hasta luego.

;)

Roy 04-07-2003 11:36:23

Cita:

Posteado originalmente por jachguate
... pero en KeyField podes poner una lista de campos separados por punto y coma.

Digamos EMPRESA;SUCURSAL;CLIENTE

Por lo menos en D7 esto no funciona. El error dice que el Field 'EMPRESA;SUCURSAL;CLIENTE' no existe. Y esto parece natural pues el KeyField parece ser el campo que contiene los valores a asignar a DataField...

Aunque no es mi caso... yo no quiero asignar la elección a ningún DataField.... sólo quiero utilizar el combo como 'filtro' para otros componentes; como una grilla, por ejemplo. Que seleccionando un elemento de un combo (extraído de una tabla con clave compuesta) se pueda mostrar información relacionada en una grilla....

En mi aplicación tengo muchas tablas con claves o índices compuestos.... ¿ tengo que usar una grilla siempre que quiero filtrar para mostrar detalles ? ¿ No se puede con algún tipo de combo ?

Gracias por sus respuestas o comentarios.

Roy


La franja horaria es GMT +2. Ahora son las 15:31:45.

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