Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo ir filtrando los datos de un dbgrid mientras voy escribiendo en un edit? (https://www.clubdelphi.com/foros/showthread.php?t=68642)

Master23 26-06-2010 02:38:54

¿Cómo ir filtrando los datos de un dbgrid mientras voy escribiendo en un edit?
 
tengo una base de datos paradox y el database grid tiene varios datos cómo los puedo ir filtrando mientras voy escribiendo en el edit . Un ejemplo si tengo varios nombres y tengo uno que se llama pedro si voy escribiendo por letra valla dejando solos las coincidencias etc , gracias de antemano.

(nota) estoy usando un table .

Caral 26-06-2010 05:33:52

Hola
Opcion 1:
Código SQL [-]
'Select x from mitabla where micampo like'+edit
Opcion 2.
Filtro.
Opcion 3.
Ser mas claro con la pregunta.
Saludos

Master23 26-06-2010 05:38:12

Cita:

Empezado por Caral (Mensaje 368432)
Hola
Opcion 1:
Código SQL [-]
'Select x from mitabla where micampo like'+edit
Opcion 2.
Filtro.
Opcion 3.
Ser mas claro con la pregunta.
Saludos

Lo que quiero es que mientras estoy escribiendo en el dbgrib se vallan apareciendo solo los que coinciden con lo escrito en el edit, es cómo en el clubdelphi al buscar un tema por nombre de usuario si escribes m todos los nombres que empiezan con esa letra aparecen hasta completar la palabra los demás no aparecen eso es lo quiero que mientras yo valla escribiendo en el edit los que están demás vallan desapareciendo del dbgrid hasta llegar a mi objetivo osea el nombre o palabra completa digitada simplemente queda el que yo quiero.

Caral 26-06-2010 15:29:23

Hola
En el evento OnChange del edit.
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var
   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      TUTABLA.Filtered := False;
       Filtro := 'Nombre Like '''+ Edit1.Text + '*'''
      TUTABLA.Filter := Filtro;
      TUTABLA.Filtered := True
   end
   else TUTABLA.Filtered := False;
end;
1- tutabla, ahi tienes que poner el nombre que tiene.
2- filtro es un string
3- Nombre es el nombre del campo que vas a filtrar.
4- Ya que usas un table se hace un filtro, si usas un query se hace una sentencia sql.
Saludos

ecfisa 28-06-2010 15:52:52

Hola Master23.

Creo que lo que queres realizar es una busqueda incremental, aca se trató el tema:
http://www.clubdelphi.com/foros/show...335#post359335


Saludos.

AzidRain 29-06-2010 23:50:35

Por cierto, estas búsquedas si bien son muy vistosas ya cuando se pasa a entorno SQL ya no resultan tanto ya que hay que lanzar un query distinto en cada teclazo. La recomendacion es lanzar el query para que devuelva únicamente el campo relevante y ya una vez localizado traer todo el registro.

ecfisa 30-06-2010 02:38:40

Cita:

Empezado por AzidRain (Mensaje 368674)
Por cierto, estas búsquedas si bien son muy vistosas ya cuando se pasa a entorno SQL ya no resultan tanto ya que hay que lanzar un query distinto en cada teclazo. La recomendacion es lanzar el query para que devuelva únicamente el campo relevante y ya una vez localizado traer todo el registro.


100 x 100% de acuerdo con vos. Vistoso pero de lo más ineficiente.

AzidRain 30-06-2010 22:01:45

A proósito, hay algunos componentes (desgracidamente todos son de pago) que tienen esa función, por ejemplo el QuantumGrid de DevExpress te permite hacer búsquedas así como las quieres en cualquier campo del grid y sin meter código adicional. No sé si haya alguno abierto, deberías checar en Torry's, de repente se encuentra uno buenas cosas ahí.


La franja horaria es GMT +2. Ahora son las 22:16:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi