Ayuda para programar un sistema de búsqueda en Delphi
Antes que nada quiero agradecerte por haberme contestado el día de ayer pero creo que no me supe explicar bien, sigo con la misma duda del like.
Estoy realizando un programilla de llamas, quiero que por medio de una búsqueda sencilla sin querys al ir introduciendo cada letra de un nombre vaya apareciendo en un dbgrid los nombres que contengan esa letras. Por ejemplo si quiero buscar todos los nombres que sean ulises, aparezcan, o si quiero buscar todos los Perez, aparezcan todos, el nombre esta compuesto por nombre-apellido paterno-apellido materno, he estado intentando esto pero no me funciona.
procedure TFLlamadas.Edit1KeyPress(Sender: TObject; var Key: char);
begin
Tllamadas.Filter:= 'NOMBRE like' + QuotedStr(strupper(Pchar(Edit1.Text))+'*');
Tllamadas.feltered:= True;
End;
Me mandaste esta respuesta:
Re: filtros con like
Experto
18/06/2007
Hola que tal: no, el like no funciona en los filtros de un componente en este caso de TTable.
El asunto esta así:
TLlamadas.Filtered := false;
TLlamadas.Filter :='NOMBRE = '+QuotedStr(Edit1.TExt);
TLlamadas.Filtered := true;
Así seria el código.
Pero antes a tu table TLlamadas tiene una propiedad FilterOptions buscala en el inspector de objectos, esta opción tiene dos opciones más llamadas foCaseInsensitive y foNoPartialCompare ha estas 2 deberás ponerlas en TRUE.
Has este movimiento y checalo. Ok
Saludos.
De lo que te conteste: Gracias por contestar mi pregunta, pero mira lo que quiero es que si tengo ULISES MONTALVO DIAZ, pueda buscarlo por ulises o por montalvo o por diaz, todo el nombre esta en un solo campo, por eso es que quería utilizar el like, es que si utilizo este código que me diste si solo pongo montalvo no me aparece nada.
Ahora con respecto a tu nota de Pero antes a tu table TLlamadas tiene una propiedad FilterOptions buscala en el inspector de objectos, esta opción tiene dos opciones más llamadas foCaseInsensitive y foNoPartialCompare ha estas 2 deberás ponerlas en TRUE.
Has este movimiento y checalo. Lo hice y ya no me mostró nada en el dbgrid al correr el código que me diste.
Ya llevo varios días con esto y no encuentro la solución soy principiante ojala puedas ayudarme.
Estoy realizando un programilla de llamas, quiero que por medio de una búsqueda sencilla sin querys al ir introduciendo cada letra de un nombre vaya apareciendo en un dbgrid los nombres que contengan esa letras. Por ejemplo si quiero buscar todos los nombres que sean ulises, aparezcan, o si quiero buscar todos los Perez, aparezcan todos, el nombre esta compuesto por nombre-apellido paterno-apellido materno, he estado intentando esto pero no me funciona.
procedure TFLlamadas.Edit1KeyPress(Sender: TObject; var Key: char);
begin
Tllamadas.Filter:= 'NOMBRE like' + QuotedStr(strupper(Pchar(Edit1.Text))+'*');
Tllamadas.feltered:= True;
End;
Me mandaste esta respuesta:
Re: filtros con like
Experto
18/06/2007
Hola que tal: no, el like no funciona en los filtros de un componente en este caso de TTable.
El asunto esta así:
TLlamadas.Filtered := false;
TLlamadas.Filter :='NOMBRE = '+QuotedStr(Edit1.TExt);
TLlamadas.Filtered := true;
Así seria el código.
Pero antes a tu table TLlamadas tiene una propiedad FilterOptions buscala en el inspector de objectos, esta opción tiene dos opciones más llamadas foCaseInsensitive y foNoPartialCompare ha estas 2 deberás ponerlas en TRUE.
Has este movimiento y checalo. Ok
Saludos.
De lo que te conteste: Gracias por contestar mi pregunta, pero mira lo que quiero es que si tengo ULISES MONTALVO DIAZ, pueda buscarlo por ulises o por montalvo o por diaz, todo el nombre esta en un solo campo, por eso es que quería utilizar el like, es que si utilizo este código que me diste si solo pongo montalvo no me aparece nada.
Ahora con respecto a tu nota de Pero antes a tu table TLlamadas tiene una propiedad FilterOptions buscala en el inspector de objectos, esta opción tiene dos opciones más llamadas foCaseInsensitive y foNoPartialCompare ha estas 2 deberás ponerlas en TRUE.
Has este movimiento y checalo. Lo hice y ya no me mostró nada en el dbgrid al correr el código que me diste.
Ya llevo varios días con esto y no encuentro la solución soy principiante ojala puedas ayudarme.
1 Respuesta
Respuesta de gaunmanuel
1