Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Filtro de Dos Campos... (https://www.clubdelphi.com/foros/showthread.php?t=59159)

zeta2 15-08-2008 00:05:49

Filtro de Dos Campos...
 
Amigos:

Estoy que queriendo filtrar dos campos... Primero el Apellido, y luego el Nombre

Todo bien al filtrar el Campo "Apellido", pero cuando Filtro el Campo "Nombres" lo filtra, pero me quita el filtro anterior y no busca el nombre "Pedro" de todos los "Lopez" si no el nombre "Pedro" de Dodos los apellidos que hay cardado en la tabla...

No se si logro explicarme. No puedo encimar un filtro en otro.
Estube buscando algun otro post que tenga el mismo problema y no he encontrado.

Al filtro los estoy haciendo con componentes DBLookupComboBox

Gracias muchachos por la ayuda... Estaré Atento. Cualquier cosa luego posteo el Codigo que uso y seré mas especifico.

Atte. Marco.

coso 15-08-2008 11:57:15

hola, puedes usar un and : filtro = nombre = 'PEDRO' and apellido='LOPEZ'

zeta2 15-08-2008 22:29:02

Cita:

Empezado por coso (Mensaje 307771)
hola, puedes usar un and : filtro = nombre = 'PEDRO' and apellido='LOPEZ'



Esto es lo que estoy haciendo:

TBConsulta: Tabla
Apellido: Campo
Nombres Campo
DBLkCBApellido: Componente DBLookupComboBox
DBLkCBNombres: Componente DBLookupComboBox


Código:

TBConsulta.Open;
 TBConsulta.Filter := 'Apellido =' +QuotedStr(DBLkCBApellido.Text);
 TBConsulta.Filtered := TRUE;

Hasta aca todo bien... Ahora quiero hacer esto, y utilizando el consejo del amigo coso no lo he podido lograr, vaa, no se si lo estoy haciendo bien... Si pueden corrijanme.

Código:

TBConsulta.Open;
 TBConsulta.Filter := ('Apellido =' +QuotedStr(DBLkCBApellido.Text)) and ('Nombres = '+QuotedStr(DBLkCBNombres.Text));
 TBConsulta.Filtered := TRUE;

Muchas gracias amigos.

Atte. Marco.

coso 15-08-2008 23:01:25

estas haciendo and de las dos string, tienes que insertar la palabra and en la string misma

TBConsulta.Filter := '(Apellido =' +QuotedStr(DBLkCBApellido.Text) +') and (Nombres = '+QuotedStr(DBLkCBNombres.Text)+ ')';

irixita 22-08-2008 17:02:50

Como filtrar la busqueda de la grilla?
 
Yo aplique ese metodo de busqueda y busca perfecto.... ahora lo que me gustaria hacer y no encontre la forma, es la de buscar tal vendedor y filtrar el resto, para poder imprimir esa lista filtrada...

y otro problema que tengo es que la misma grilla se selecciona un campo y se puede modificar, Como hago para que eso no suceda? mi idea es poder seleccionar un vendedor, que se carguen todos sus datos en distintas cajas de texto y guardarlas.

Se entienden mis 2 cuestiones?

Desde ya muchas gracias!

Fenareth 22-08-2008 17:35:28

Cita:

Empezado por irixita (Mensaje 308815)
Yo aplique ese metodo de busqueda y busca perfecto.... ahora lo que me gustaria hacer y no encontre la forma, es la de buscar tal vendedor y filtrar el resto, para poder imprimir esa lista filtrada...

Hola irixita !

Pues para efectos de filtrar una tabla es la misma base:

Código Delphi [-]
Tabla.Filter := 'Campo =' +QuotedStr(Edit.Text);
Tabla.Filtered:= true;

Esto suponiendo que tomas el dato con el cual filtrarás de un TEdit...

Cita:

Empezado por irixita (Mensaje 308815)
y otro problema que tengo es que la misma grilla se selecciona un campo y se puede modificar, Como hago para que eso no suceda? mi idea es poder seleccionar un vendedor, que se carguen todos sus datos en distintas cajas de texto y guardarlas.

Se entienden mis 2 cuestiones?

Desde ya muchas gracias!

Para evitar el poder editar en TDBGrid puede poner su opcion dgEditing en False...

Espero te sea de ayuda... cuéntanos como te fue... Saludos :)

Caro 22-08-2008 18:17:22

Cita:

Empezado por irixita (Mensaje 308815)
ahora lo que me gustaria hacer y no encontre la forma, es la de buscar tal vendedor y filtrar el resto, para poder imprimir esa lista filtrada...

Supongo que la busqueda exacta es la que te funciona bien, ¿tu quieres hacer una busqueda aproximada?, si es así, tienes que utilizar like.

Código Delphi [-]
Tabla.Filtered:= false;
Tabla.Filter := 'Campo like '+QuotedStr(Edit.Text+'%');
Tabla.Filtered:= true;

sobre lo segundo como te dice la amiga Fenareth, tu opción dgEditing tiene que estar en False, DBGrid->Options->dgEditing.

Saluditos

zeta2 22-08-2008 21:16:44

Ahi esta gente... solucione el probelma... Disculpen la demora, mucho trabajo... =p Me alegro de que este tema le haya sacado la duda a otra persona... =)

Gracias a todos una vez mas...

irixita 22-08-2008 21:28:37

Muy buenas las respuestas
 
Gracias Fenareth y Caro.... pude solucionar el problema. :) me encanta este foro aqui te sacan todas las dudas!!! :D

Gracias....

zeta2 22-08-2008 21:48:58

Y.Y

Yo tambien ayude =(

XD

Saludos.

irixita 22-08-2008 22:47:01

Gracias zeta2
 
jeje bueno zeta2 realmente vos iniciaste todo este hilo!! :) gracias a vos tambien!!!

Que esten super bien!!

zeta2 22-08-2008 23:31:53

Ahora estoy mucho mejor!!! XD Bueno dejemos de alterar el foro =p

Saludos irixita... Cualquier me dices... Ahh y me llamo Marco. =p


La franja horaria es GMT +2. Ahora son las 06:08:37.

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