Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2003
Roy Roy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Entre Ríos/Argentina
Posts: 22
Poder: 0
Roy Va por buen camino
Question 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
Responder Con Cita
  #2  
Antiguo 03-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 03-07-2003
Roy Roy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Entre Ríos/Argentina
Posts: 22
Poder: 0
Roy Va por buen camino
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

Última edición por Roy fecha: 03-07-2003 a las 19:32:32.
Responder Con Cita
  #4  
Antiguo 04-07-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Puede que este equivocado... pero en KeyField podes poner una lista de campos separados por punto y coma.

Digamos EMPRESA;SUCURSAL;CLIENTE

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 04-07-2003
Roy Roy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Entre Ríos/Argentina
Posts: 22
Poder: 0
Roy Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:59: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
Copyright 1996-2007 Club Delphi