![]() |
Claves compuestas en DBLookupComboBox
Hola amigos, como andan. Lo que planteo es un problema de flexibilidad sobre la programacion del componente DBLookupComboBox ante claves compuestas en el KeyField y DataField. Estas propiedades permiten especificar un solo campo nada más?. Intenté escribir los campos involucrados separados con coma pero no funciona. Parece que la única forma de hacerlo es programar sobre el evento OnChange del componente para guardar los campos clave del dataset origen en el data set destino, pero dificulta un poco el mantenimiento cuando esta situación se repite en varias instancias del sistema. Tal vez es mi costumbre de programar con objetos DataAware.
Para que entiendan la situacion, les ejemplifico las tablas: FamiliaCta ID_Rubro [CP] ID_Familia [CP] Descripcion SubFamiliaCta ID_Rubro [CP] ID_Familia [CP] ID_SubFamilia [CP] Descripcion Entonces las propiedades del componente desearía que fueran asi: ListSource = dsFamilia ListField = Descripcion KeyField = ID_Rubro, ID_Familia DataSource = dsSubFamilia DataField = ID_Rubro, ID_Familia También hice la prueba con el RxDBLookupCombo pero no tampoco pude. En síntesis, necesito saber si es posible establecer más de un campo sobre las propiedades KeyField y DataField. Mucha s Gracias |
Cita:
Saludos. |
Saludos
1ro no pudes usar DataSource y ListSource al mismo tiempo es uno o otro. Y creo que para el caso es mejor usar ListSource. KeyField no puede usar campos compuestos, pero si ListField separandolos por punto y coma ( ; ) . |
Perfecto amigos! me sacaron una gran duda de encima, y gracias por la calidad y la rapidés de sus respuestas... sigan asi.
Un saludo |
Cita:
// Saludos |
Cita:
Saludos. |
Saludos
Cita:
Quizas me expresé mal, me referia a usar el mismo datasource para las propiedades ListSource y DataSource; no se ustedes pero a mi me da un error de "Circular datalink...", al momento de asignar el campo necesario. |
Les comento que esto de usar claves compuestas hubiese sido muy util si lo hubiesen colocado directamente pero no fue asi, el lookup solo admite un campo para relacionar ambas tablas. Sin embargo estoy trabajando en una aplicación donde necesitaba algo asi, así que la alternativa que tuve fue crear un campo especial concatenando los valores de las claves compuestas en un TQuery. Por ejemplo:
Código:
SELECT |
La franja horaria es GMT +2. Ahora son las 05:12:56. |
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