Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-01-2006
Luis Castillo Luis Castillo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 102
Poder: 21
Luis Castillo Va por buen camino
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:
PERSONA (CEDULANOMBRESID_DEPARTAMENTOID_MUNICIPIOID_BARRIO)
DEPARTAMENTO (ID_DEPARTAMENTONOMBRE)
MUNICIPIO (ID_MUNICIPIONOMBREID_DEPARTAMENTO)
BARRIO (ID_BARRIONOMBREID_DEPARTAMENTOID_MUNICIPIO
En una forma muestro la tabla PERSONA con componentes DBEdit etc...
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...
__________________
LK
Responder Con Cita
  #2  
Antiguo 04-01-2006
Iseberiano Iseberiano is offline
Miembro
 
Registrado: may 2005
Posts: 12
Poder: 0
Iseberiano Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 04-01-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Y si parametrizas los querys de los departamentos según elija el usuario. por ejemplo en el onchange del lookup.
__________________
Suerte
Alejandro
Responder Con Cita
  #4  
Antiguo 05-01-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
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.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #5  
Antiguo 05-01-2006
Luis Castillo Luis Castillo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 102
Poder: 21
Luis Castillo Va por buen camino
No existe

Cita:
Empezado por aledieb
Y si parametrizas los querys de los departamentos según elija el usuario. por ejemplo en el onchange del lookup.
ESta bien... eso seria lo ideal pero el TDBLookupCombobox no tiene el evento onchange (que desgracia no?). He puesto la filtracion en el Onchange del datasource, he intentado en el afterscroll de la tabla, pero nada me forma el conflicto dicho arriba.......
__________________
LK
Responder Con Cita
  #6  
Antiguo 05-01-2006
Luis Castillo Luis Castillo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 102
Poder: 21
Luis Castillo Va por buen camino
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:
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.
habia qu etenr


Te agradeceria me respondas
__________________
LK
Responder Con Cita
  #7  
Antiguo 05-01-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Es cierto

Cita:
Empezado por Luis Castillo
ESta bien... eso seria lo ideal pero el TDBLookupCombobox no tiene el evento onchange (que desgracia no?). He puesto la filtracion en el Onchange del datasource, he intentado en el afterscroll de la tabla, pero nada me forma el conflicto dicho arriba.......
Es cierto, no lo tiene, pero tal ves te sirva el OnCloseUp, OnEnter u OnExit ó los tres.

En caso de apuro lo hice así, hasta que cambie al JvDBLookupCombo de la JEDI VCL, que si lo tiene.
__________________
Suerte
Alejandro
Responder Con Cita
  #8  
Antiguo 06-01-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
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.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



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 11:30:54.


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