![]() |
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 |
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! |
Cita:
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 |
Puede que este equivocado... pero en KeyField podes poner una lista de campos separados por punto y coma.
Digamos EMPRESA;SUCURSAL;CLIENTE Hasta luego. ;) |
Cita:
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 09:58:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi