Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2013
sorati sorati is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 2
Poder: 0
sorati Va por buen camino
Filtro Parcial TTable

Hola buenas tardes estoy necesitando hacer una busqueda parcial en un componente ttable, la busqueda que necesito hacer es por el campo nombre y apellido de un determinado empleado, tengo un edit en el cual ingreso el dato a buscar pero necesito que me filtre por la cadena que ingrese ya sea un caracter por ejemplo si busco por la letra 'r' me busque todos los empleados que contienen esa letra en el nombre o apellido. Gracias!
Responder Con Cita
  #2  
Antiguo 11-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola sorati y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Con respecto a tu consulta, fijate si te sirve de este modo:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
  with Table1 do
  begin
    Filtered := False;
    Filter   := 'NOMBREAPELLIDO = ' + QuotedStr(Edit1.Text + '*'); // (*)
    Filtered := True;
  end;
end;
(*) Use el nombre de campo "NOMBREAPELLIDO" como ejemplo, reemplazalo por el que corresponda en tu tabla.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 11-11-2013
sorati sorati is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 2
Poder: 0
sorati Va por buen camino
Hola gracias por responder, intente hacerlo de esa manera pero solo me busca por la primera letra por ejemplo ingreso en el edit la letra 'N' y me filtra por ejemplo Nicolas Romero, al hacer lo mismo con la R para que me filtre por el apellido no lo hace.
Saludos
Responder Con Cita
  #4  
Antiguo 11-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
sorati,

Cita:
Empezado por sorati
...solo me busca por la primera letra por ejemplo ingreso en el edit la letra 'N' y me filtra por ejemplo Nicolas Romero, al hacer lo mismo con la R para que me filtre por el apellido no lo hace...
Pregunto: ¿Haz considerado usar un query?.

Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   with IBQuery1 do
   begin
      Close;
      Sql.Clear;
      Sql.Text := 'Select * from Employee Where First_Name Like :P1 and Last_Name Like :P2';
      ParamByName('P1').AsString := Edit1.Text + '%';
      ParamByName('P2').AsString := Edit2.Text + '%';
      Open;
   end;
end;
El código anterior permite consultar una tabla de empleados y hacer búsquedas por nombre y apellido por medio de un query.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 11-11-2013 a las 08:19:17.
Responder Con Cita
  #5  
Antiguo 11-11-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por sorati Ver Mensaje
Hola gracias por responder, intente hacerlo de esa manera pero solo me busca por la primera letra por ejemplo ingreso en el edit la letra 'N' y me filtra por ejemplo Nicolas Romero, al hacer lo mismo con la R para que me filtre por el apellido no lo hace.
Saludos
Hola sorati.

Entiendo... Para hacer lo que deseas con un TTable vas a tener que usar el evento OnFilterRecord de la misma:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
  Table1.Filtered := False;
  Table1.Filtered := True;
end;

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  Accept := Pos(Edit1.Text, Table1.FieldByName('NOMBREAPELLIDO').AsString) <> 0
end;


Por otro lado, si decidis cambiar por un TQuery que, al igual que Nelson considero una opción más flexible, sería:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM TU_TABLA WHERE NOMBREAPELLIDO LIKE :PVALUE';
    ParamByName('PVALUE').AsString := '%' + Edit1.Text + '%';
    Open;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Redondear en un filtro TTable pjmedina Varios 4 11-12-2008 12:00:13
búsqueda total y parcial kayetano MySQL 0 21-06-2007 11:29:57
IBTable vs TTable Puche Firebird e Interbase 2 13-07-2006 05:02:54
Borrado parcial de registros manu SQL 2 31-05-2006 17:39:36
Ttable y Tquery dvdjr Varios 3 20-05-2003 17:15:57


La franja horaria es GMT +2. Ahora son las 13:16:49.


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