Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda con filtro (https://www.clubdelphi.com/foros/showthread.php?t=9549)

vhirginia 26-04-2004 20:27:46

Ayuda con filtro
 
Muy buenas tardes a todos:
Tenemos 2 DBLookUpComboBox que se refieren a 2 tablas distintas.En el primero hacemos un filtro por un campo , y en el 2º (al que ya se ha aplicado el primer filtro) tenemos otro filtro por otro campo.El problema surge cuando intentamos seleccionar un item del 2º DBLookUp. aparece como si seleccionaramos todo, pero en realidad sólo selecciona el item sobre el q se pincha, es decir sólo es un problema de apariencia.
Muchas gracias y un saludin

vhirginia 26-04-2004 22:55:05

El problema también es que si lo hacemos todo desde la misma tabla, que se podría, al seleccionar el primer campo aparecería repetido varias veces, por eso lo extraemos de la otra tabla. Creo que no haya problema en eso. Espero que nos podaais ayudar.
Muchas gracias

vhirginia 27-04-2004 10:31:58

Buenos dias a todos,
¿creeis que nuestra duda no tiene solución?si es así decirnoslo, porque como no habeis contestado suponemos que nadie nos puede ayudar, y entonces nos dejaremos de preocupar por este tema. Expresarnos alguna opinion, porfavor
Muchísimas gracias y lamentamos ser repetitivas

JamesBond_Mx 27-04-2004 17:03:38

Me gustaría que explicaras un poco mejor, o a ver si te entendí, el Primer combo seleccionas el campo por el cual se filtra la tabla que se relaciona el segundo ¿estoy bien?, pero dices que el segundo no te muestra los datos filtrados, si no que te los muestar como si no hubiera filtro ¿ok?, ahora pregunto, la tabla que está relacionada con el segundo combo tiene su propiedad Filtered en True??

vhirginia 27-04-2004 17:28:32

Hola,
Creo que me he explicado mal,veamos :
En el combo 1 se filtra la tabla que se relaciona al 2º.Hasta ahi todo bien.En el segundo aparecen los datos filtrados correctamente,el problema es que al intentar seleccionar con el ratón uno de los items q tiene el combobox 2, se seleccionan todos, es decir, si en el combobox 2 tienes :
1ºA
1ºB
2ºa
2ºb
y ahora intentas pinchar con el raton en el 1ºb ,al pinchar sobre él se debería poner azul oscuro para indicar que ha sido seleccionado,pero el problema es q se ponen azul oscuro los 4 items del combo, aunque en realidad a la hora de mostrar los datos si q lo hace bien, es decir , aunque parezca que se seleccionan todos porq todo se pone azul, en realidad los datos que muesttra son los del item que realmente se ha pinchado.
Espero que ahora me hayas entendido mejor y puedas echarme una mano con esta duda que ya me esta agobiando,
Muchas gracias y un saludo

vhirginia 27-04-2004 19:22:18

:(:(:( Necesitamos ayuda
Un Saludo

JamesBond_Mx 27-04-2004 21:39:46

Bueno, Debería funcionar bien :( , acabo de hacer una prueba, y me selecciona solo el item que selecciono, y lo únio que hice es crear una nueva aplicación, en el form colocar dos Tablas, dos DataSource y los dos DBLookupComboBox, en la Tabla 1 hay 6 registros, que son con los cuales se va a filtrar la tabla 2 que tiene 1202 registros, el DBLookupComboBox1 tiene como ListSource El DataSource de la Tabla1, y el DBLookupComboBox2 Tiene como ListSource El DataSource de la Tabla2, luego en el Evento OnCloseUp del DBLookupComboBox1 pongo lo siguiente:

Código:

procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
  Table2.Filter:='Cve_Resp='+QuotedStr(DBLookupComboBox1.Text);
  Table2.Filtered:=True;
end;

El campo Cve_Resp, existe en las dos tablas, y es el campo llave de la Tabla 1,

Y funciona perfectamente. :D

Has de tener alguna propiedad del DBLookupComboBox2 habilitada por ahí, que te hace esto que dices, pero así como lo hice funciona perfectamente. :(

vhirginia 27-04-2004 22:18:13

nosotras tenemos ese evento que tu dices
[code]
procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
Table2.Filter:='Cve_Resp='+QuotedStr(DBLookupComboBox1.Text);
Table2.Filtered:=True;
end;
[\code]

en el evento Onclick del DBLookUpComboBox 2, esa creo que sea la única diferencia...

vhirginia 27-04-2004 22:21:55

perdón por el error del code jeje

JamesBond_Mx 27-04-2004 22:48:19

Pues si, y te diré que al ejecutar el filtro de esa manera la tabla dos se filtrará hasta que tu haces click en el combo2, y yo pienso que eso no es lo que quieres, el filtro debe de ejecutarse al seleccionar en el combo1, por eso yo realizo el filtro en el primer combo

kinobi 27-04-2004 22:48:20

Hola,

Cita:

Empezado por vhirginia
Buenos dias a todos, ¿creeis que nuestra duda no tiene solución?

Puede ser, pero es que no han pasado ni 24 horas (en realidad sólo 14 horas) desde que abriste el hilo. Es difícil que en ese tiempo siquiera haya sido leído por todos los "habituales" de los foros; recuerda que los usuarios de estos foros estamos repartidos por todo el planeta, y existe eso de los husos horarios. Vamos, que cuando tu envías un mensaje por la mañana, al otro lado del mundo, donde está esa persona que tal vez pueda ayudarte, se va a la cama a dormir y puede que no lea tu mensaje hasta el día siguiente.

Cita:

Empezado por vhirginia
si es así decirnoslo,

No, el mecanismo no funciona así. Si nadie tiene solución a tu problema, nadie te dirá nada. Si esto fuese un servicio técnico de pago que tuvieses contratado, evidentemente, se te informaría al respecto, pero no lo es.

Cita:

Empezado por vhirginia
Muchísimas gracias y lamentamos ser repetitivas

Y nosotros ser tan repetitivos con la lectura de la Guía de estilo (ver firma).

Te recuerdo lo que pone al respecto de este asunto:

Cita:

Empezado por Guía de estilo
Nadie me contesta

Si te encuentras en esta situación, te aconsejaría que en vez de abrir otro tema, con lo que podría perderse información previa sobre el tema que expusiste en un principio, siguieses el tema que tu mismo iniciaste en su día, escribiendo una nueva contestación. De esta manera el tema se actualizará y pasará a la cabecera del foro, y se marcará como no leido para el resto de usuarios. Así evitamos duplicar información innecesariamente.
...

Como ves, se indica que antes de elevar nuevamente un hilo a la cabecera de los foros, han de pasar unos días, no unas horas.

Saludos.


La franja horaria es GMT +2. Ahora son las 02:09:58.

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