![]() |
Problema campos de busqueda
A ver colegas.....es un poquito largo mi comentario pero empezemos:
Estoy trabajando en Interbase y Delphi 7, con componentes IBX (especialmente IBDataSet). Tengo por ejemplo la siguiente estructura: Código PHP:
En esta forma se puede insertar, editar, eliminar y navegar. Con los campos ID_Departamento, ID_Municipio, ID_Barrio hago campos de busqueda que referencia cada uno a la tabla correspondiente (para mostrar el nombre y no el codigo !!claro!!! en realidad referencian a consultas de estas tablas....). El funcionamiento ideal de esto es que cuando vaya a insertar una PERSONA y escoga el departamento "X", cuando vaya a escoger el MUNICIPIO se muestre en la lista los municipios del departamento seleccionado en el Lockup de DEPARTAMENTO. Y asi con el barrio. Yo tengo las consultas referenciadas de DEPARTAMENTO, MUNICIPIO, Y BARRIO relacionadas en algo asi como MASTER/DETAIL por medio de la propiedad DATASOURCE de la consulta y agragegando el parametro correspondiente...(ustedes saben como es la cuestion...) Pero el problema es que cuando hago operaciones (insertar editar) y al seleccionar el departamento, y luego el municipio, en el Lockup del municipio se muestra vacio. Tengo entendio que cuando selecciono el departamento se cambia la fila activa y debe restringir los registros mostrados en el municipio (debido a la relacion master/detali). Incluso cuando abro la tabla y esta en modo dsBrowse me muestra el departamento y no el municipio (teniendo el campo ID_MUNICiPIO asignado un valor correcto) Le quite la relacion master/detail y parece ser que funciona bien. Pero no le brinda la facilidad y poco riesgo al usuario de seleccionar siempre un municipio deacuerdo al departamento (para evitar inconsistencia) Les agradezco cualquier sugerencia....muchas Gracias... |
Luis,
has probado de utilizar la propiedad Filter? En vez del Master / Detail? Es un poco mas laborioso pero a mi me funciona mejor. Un saludo |
Y si parametrizas los querys de los departamentos según elija el usuario. por ejemplo en el onchange del lookup.
|
Resp
Normal mente yo trabajaba con los lookup con ibo y no es necesario estar cambiando los master por estos se realmar automaticamente al cambiar el padre y hacen filtros sino que relenazan la instruccion sql al servidor.
Si esto me funcionaba perfecto pero tube algunos casos donde habia qu etenr hasta 30 o mas lookup y el modulo s etarbabo mucho entonces preferi cambiar la forma de trabajar y editar sobre campos de edicion y al salir del campo si esta ba en estado d eedicion o insercio entonces se realiza la busqueda en la respectiva tabla se actualizan los campos id y se actualiza la informacion a amostrar en pantalla y si no s encontro ninguna concidencia se levnata un modulo respectivo para que incluiyan o busuqen d emanera mas especifica y si se los patrones encuantran mas d euna concidencia se leevanta una ventana con la lista para que se seleccion el que desee. Si se aran dado cuenta solo se habre un data set y precisamente en el momeneto de la consulta es que se va abriendo la consulta necesaria para lu busqueda. Cuando no se esta insertando datos solo se tien e un data set activo en vez de tener tambien los relacionados con lookup abierto. Pero el unico inconveniente que se tiene es qeu como en la inturccion select hay campos que son canculador ya que dicha tabla solo tiene lo ids los campos calculados nose pueden editar pero yo lo slucione haciendo procedimeintos para insercion y modificacion la cuan les pasaba los campos calculados que a la final no hacen nada sino que simplemente es para que permitir que estos se editen y se inserten pero en verda los campos qu es einsertar los los que en relidad estan en la tabla. |
No existe
Cita:
|
Enredado..
Colega rastafarey , parece que tu comentario tiene contenido importante, pero por favor aclarame la sintaxis porque hay cosas que no entiendo y me hacen no entender la intencion del mensaje
Cita:
Te agradeceria me respondas |
Es cierto
Cita:
En caso de apuro lo hice así, hasta que cambie al JvDBLookupCombo de la JEDI VCL, que si lo tiene. |
Resp
Trato de explicar de mejor manera.
Lo que explique anteriormente no es para resolver el problema de la manera que lo planteas sino desde mi punto d evista d euna manera mas eficiente. Es tan simple como tratr de evitar los lookup y tener que abrir dataset extras. Ejemplo. Teienes una tabla donde hay un ide externo a personas por el campo id persona. Como solo tiene sid persona. Pero como es mas comodo buscar por nombre y codigo entonces en eel formulario tendrias codigo y nombre persona, caundo se esta insertando o modificando dependiendo del dato que se introdujo en dicho campo realizar un abusque day cargar los datos a id persona. pero tienes el inconveniente qie no puedes editar ni codigo persona y nombre persona ya seran campos calculados entonce eso o solucionas con un procedimeinto. |
La franja horaria es GMT +2. Ahora son las 10:03:57. |
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