Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   !!Problema de búsqueda en un DBGrid!! (https://www.clubdelphi.com/foros/showthread.php?t=72651)

Darkseratul 03-03-2011 20:32:39

!!Problema de búsqueda en un DBGrid!!
 
hola amigos del club, tengo un problema que mas o menos va así
tengo un adoconection, adotable, y un datasurce todo esto es ta muy bien
tengo un edit que en su evento onchange tengo el siguiente código (ejemplo encontrado aquí mismo)

Código Delphi [-]
If (Edit1.text <> '') then
    DataModule1.ADOcompra.Filter := 'Nombredelconprador Like '''+ Edit1.Text +'*''';

la búsqueda funciona muy bien al ingresar una letra de inmediato me muestra los registros resultantes .......

el problema es que cuando borro todas las letras (vació el edit)

El DBGrid queda vació como le hago para que cuando el edit este vació mede de nuevo todos los registros en el DBGrid:(:(

Espero que alguien me puedo contestar y muchas gracias por su tiempo :D:D

rgstuamigo 03-03-2011 20:50:33

Supongo que la propiedad Filtered de tu adotable está activa(Filtered=True), entonces debes desactivarla(Filtered=False) ;)
Siguiendo tu ejemplo podriamos hacer que cuando el edit esté vacio no me filtre nada:
Código Delphi [-]
If (Edit1.text <> '') then
 Begin
    DataModule1.ADOcompra.Filter := 'Nombredelconprador Like '''+ Edit1.Text +'*''';
    DataModule1.ADOcompra.Filtered:=True;
 end
Else DataModule1.ADOcompra.Filtered:=False; //<--- ;) ;)
Saludos...:)

Darkseratul 03-03-2011 21:17:17

Gracias
 
hola que tal gracias por responder tan rapido :D:D:D
he hecho lo que me has dicho pero me sale un error
algo así como

Expected INITIALIZATION but received ELSE

ya he intentado resolverlo pero no he encontrado la sulucion
a ver si me puedes ayudar seria de mucha ayuda para mi
y gracias por tu respuesta, por tu tiempo :):):):):)

Darkseratul 03-03-2011 21:34:18

Ya solucione el problema
 
:D:D:D:D:D:D solo unos delles como quitarle las ; al end de la exprecion bueno la solución es mas o menos así

para que funcione tienes que quitarle en el adotable la función de Filtered ponerla en false.

Código Delphi [-]
procedure TFClientes.Edit1Change(Sender: TObject);
begin
If (Edit1.text <> '') then
begin
    DataModule1.ADOcompra.Filter := 'Nombredelconprador Like '''+ Edit1.Text +'*''';
    DataModule1.ADOcompra.Filtered:=True;
end // quitarle las ; si no funciona 
Else
begin
DataModule1.ADOcompra.Filtered:=False;
end;
end;

muchas gracias a rgstuamigo sin su ayuda no hubiese podido lograrlo
gracias gracias gracias gracias gracias gracias
:):):):)saludos rgstuamigo gracias por tu tiempo

rgstuamigo 03-03-2011 21:35:26

Bueno.. me parece raro ese error..:eek:...pareciera que algo has hecho mal :rolleyes:; de todas formas como digiste que ese código está dentro del evento OnChange de edit pues aquí te paso el código completo de cómo debería estar en tal evento más o menos:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
    if Edit1.Text <> '' then
     begin
      DataModule1.ADOcompra.Filter:='Nombredelconprador Like '''+ Edit1.Text +'*''';
      DataModule1.ADOcompra.Filtered:=True;
     end
    else DataModule1.ADOcompra.Filtered:=False;
end;
Saludos...:)

rgstuamigo 03-03-2011 21:39:40

Cita:

Empezado por Darkseratul (Mensaje 392592)
:D:D:D:D solo unos delles como quitarle las ; al end

En efecto...;).. nunca debe haber un punto y coma ( ; ) antes de un Else en Delphi ;) ojo con eso;) , por eso debes fijarte bien el código que te puse...;)
Saludos... y me alegra que lo hayas solucionado, de los errores uno aprende;):D


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

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