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
  #21  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
Cool

ok ya lo hice ahora hay un pequeño inconveniente... al ingresar el codigo del vendedor, no se filtra la lista mostrando solo los registros, es decir que solo apunta al registro, me explico?

gracias por ayudarme realmente les agradezco a todos por esto...
Responder Con Cita
  #22  
Antiguo 23-08-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Cita:
Empezado por jandok238 Ver Mensaje
Ahora si pusiste bien el codigo... no se te pasaron los CORCHETES ...

salu2!!!!!!!
Jajajaja, si, de hecho lo tomé de la última corrección que se hizo
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #23  
Antiguo 23-08-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Cita:
Empezado por edfz Ver Mensaje
Hola,
Cómo puedo hacer para que al ir escribiendo en un edit, se vaya buscando la palabra en un dbgrid? Teniendo la grilla ya cargada.
Ej.
Tengo un edit y un dbgrid, si yo quiero buscar la palabra "casa", voy escribiendo "c" y en la grilla me tendría que aparacer los que empiecen con "c". Después escribo la "a", y en la grilla tendría que aparecer los que empiecen con "ca". Luego la "s" y en la grilla "cas" y así...
Espero que me entiendan la explicación
Gracias!
Cita:
Empezado por irixita Ver Mensaje
ok ya lo hice ahora hay un pequeño inconveniente... al ingresar el codigo del vendedor, no se filtra la lista mostrando solo los registros, es decir que solo apunta al registro, me explico?

gracias por ayudarme realmente les agradezco a todos por esto...
Pues si, en este hilo se respondía a la búsqueda tal y como la hace este código... creo que la búsqueda que necesitas la estábamos tratando en otro hilo o no ??? ... Y creí haber leído que las sugerencias que te dimos en aquél te habían servido...
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #24  
Antiguo 23-08-2008
jandok238 jandok238 is offline
No confirmado
 
Registrado: ago 2007
Ubicación: ¿ǝɯ dlǝɥ noʎ uɐɔ 'ʍouʞ ʇ,uop ı
Posts: 415
Poder: 0
jandok238 Va por buen camino
Cita:
Empezado por irixita Ver Mensaje
ok ya lo hice ahora hay un pequeño inconveniente... al ingresar el codigo del vendedor, no se filtra la lista mostrando solo los registros, es decir que solo apunta al registro, me explico?

gracias por ayudarme realmente les agradezco a todos por esto...
En efecto... asi trabaja el codigo que aqui se mostro... Solo te posiciona en el REGISTRO que coincide con lo que se teclee en el EDIT.

para VER solo aquellos registros que coincidan, se puede hacer uso de la propiedad FILTER del componente TTable que estes ocupando

salu2!!!!!!!
Responder Con Cita
  #25  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
Smile

Cita:
Empezado por Fenareth Ver Mensaje
Pues si, en este hilo se respondía a la búsqueda tal y como la hace este código... creo que la búsqueda que necesitas la estábamos tratando en otro hilo o no ??? ... Y creí haber leído que las sugerencias que te dimos en aquél te habían servido...
Si tenes razon yo tengo el codigo que dijiste en el otro hilo... lo que pasa es que estuve probando donde encajar ese codigo
Código:
modulo1.UModulo.TablaVendedor.Filtered := false;
modulo1.UModulo.TablaVendedor.Filter:='idVendedor =' +QuotedStr(txtCodigo.Text);
modulo1.UModulo.TablaVendedor.Filtered := true;
Pero no me funciona el filtro como deseo....

me explico?... de todos modos voy a intentar buscar la forma de hacerlo, si lo consigo, lo subo

SALUDOS!!!
Responder Con Cita
  #26  
Antiguo 23-08-2008
jandok238 jandok238 is offline
No confirmado
 
Registrado: ago 2007
Ubicación: ¿ǝɯ dlǝɥ noʎ uɐɔ 'ʍouʞ ʇ,uop ı
Posts: 415
Poder: 0
jandok238 Va por buen camino
Cita:
Empezado por irixita Ver Mensaje
Si tenes razon yo tengo el codigo que dijiste en el otro hilo... lo que pasa es que estuve probando donde encajar ese codigo
Código:
modulo1.UModulo.TablaVendedor.Filtered := false;
modulo1.UModulo.TablaVendedor.Filter:='idVendedor =' +QuotedStr(txtCodigo.Text);
modulo1.UModulo.TablaVendedor.Filtered := true;
Pero no me funciona el filtro como deseo....

me explico?... de todos modos voy a intentar buscar la forma de hacerlo, si lo consigo, lo subo

SALUDOS!!!
pues... por el nombre del campo 'idVendedor' ... creo que es NUMERICO ... ( indicalo por favor ) ... si es asi... entonces no es necesario poner entre comillas lo que tenga el EDIT ....

No seria necesario QuotedStr() ....

....

pero si ya esta tratado esto en otro hilo ... lo mejor seria que estos problemas/detalles los comentaras allá ....

salu2!!!!!!!
Responder Con Cita
  #27  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
jandok238

Ok voy a buscar el hilo de nuevo...=S ya me olvide como era el titulo jeje soy muy nueva en esto y bueno de a poco me ire acostumbrando a este tema.

Nunca me maneje en un foro... y la verdad este me ayuda bastante. no se imaginan todas mis dudas que tengo... jeje el idVendedor es un codigo de 5 dijitos en los cuales el primero es una letra (la primera del apellido de tal vendedor)...

Gracias chicos!

SALUDOS!!

P/D: Ya lei la guia de estilo.
Responder Con Cita
  #28  
Antiguo 23-08-2008
jandok238 jandok238 is offline
No confirmado
 
Registrado: ago 2007
Ubicación: ¿ǝɯ dlǝɥ noʎ uɐɔ 'ʍouʞ ʇ,uop ı
Posts: 415
Poder: 0
jandok238 Va por buen camino
bueno... siendo que es un campo de tipo cadena...

el procedimiento que se tiene, nunca te va a dar los resultados como quieres....

Entiendo que quieres que te muestre los Vendedores que coincidan con lo que vayas escribiendo... de tal modo que si vas escribiendo E, solo se vean los que comiencen con la letra E ... y si despues tecleas 5 , se muestren los vendedores que empiecen con E5 .... etc... etc...

El problema radica en que en el FILTER se tiene un = ... entonces...por cada vez que entra al evento... la evaluacion seria idVendedor="E" ... luego idVendedor="E5" .. etc ... etc...

la idea es meter algo como un LIKE de SQL ... pero eso si no se como

Yo lo que hago es... poner el codigo (antes mencionado) con la funcion LOCATE ... pero ordeno la tabla deacuerdo al campo (idVendedor)... asi me muestra juntos los registros parecidos...

no se si esto te sirva......

salu2!!!!!!!
Responder Con Cita
  #29  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
Talking

Hola el codigo me quedo algo asi:
hice una mezcla de los codigos que vi

Código Delphi [-]
procedure TFBusVend.txtCodigoChange(Sender: TObject);
Var
Valor,Valor1 : String;
begin
    if (txtCodigo.text <> '') then
         begin
            modulo1.UModulo.TablaVendedor.Locate('idVendedor', txtCodigo.Text,[loPartialKey,loCaseInsensitive]);
            GrillaBusVend.Visible := true;
            Valor := txtCodigo.text;
            Valor1 := Valor;
            inc(Valor1[length(Valor1)]);
            modulo1.UModulo.TablaVendedor.Filter := 'idVendedor >= '+QuotedStr(Valor)+ ' and idVendedor < ' +QuotedStr(Valor1);
            modulo1.UModulo.TablaVendedor.Filtered := True;
         end
     else
         begin
            GrillaBusVend.Visible := false;
         end

end;

eso fue lo que hice y funciona lo que quiero, salvo por una cosita, cdo borro todo se desaparece la tabla, eso es porq del lado del else dice GrillaBusVend.Visible := false; lo que no se es como volver a mostrar todos los registros de vuelta. debe ser facil, pero estuve anoche hasta las 3 am buscando la manera .

Va mejorando!!! jeje

Saluditos!!
Responder Con Cita
  #30  
Antiguo 23-08-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
hola irixita hice la prueba con tu codigo yme funciona a la perfecion!! no me genero ningun problema!

solo un inconveniente y es por mi culpa que la busqueda me la hace segun lo escrito es decir reconoce MAYUSCULA y minuscula tengo que escribir tal cual como esta en la tabla! alguien me podria ayudar a como hacer que sea indiferente entre mayuscula o minuscula lo que importa es la letra que entre!!

gracias!!!!
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #31  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
Thumbs up

Cita:
Empezado por jirbert Ver Mensaje
hola irixita hice la prueba con tu codigo yme funciona a la perfecion!! no me genero ningun problema!

solo un inconveniente y es por mi culpa que la busqueda me la hace segun lo escrito es decir reconoce MAYUSCULA y minuscula tengo que escribir tal cual como esta en la tabla! alguien me podria ayudar a como hacer que sea indiferente entre mayuscula o minuscula lo que importa es la letra que entre!!

gracias!!!!
Me alegro que te haya funcionado.
para tu problema tenes que poner en el evento onKeyPress del edit la siguiente linea.

Código Delphi [-]
if not (key in ['a'..'z', 'A'..'Z', 'ñ','Ñ',#8,' ']) then key := #0;

Ahora cdo borras todo te aparece la lista completa?

o como te aparece?

Al fin ayudo a alguien!!! jeje sos al primero que le saco una duda

Saludetes!!!
Responder Con Cita
  #32  
Antiguo 23-08-2008
Avatar de irixita
irixita irixita is offline
Miembro
 
Registrado: ago 2008
Ubicación: Argentina- Tucumán =D
Posts: 13
Poder: 0
irixita Va por buen camino
Lightbulb

A me habia olvidado. si es para numeros la linea seria:

Código Delphi [-]
if not(key in ['0'..'9',#8])then key := #0;

Espero que te sirva a vos y al que lo necesite!!...

Responder Con Cita
  #33  
Antiguo 24-08-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Cita:
Empezado por irixita Ver Mensaje
Hola el codigo me quedo algo asi:
hice una mezcla de los codigos que vi

Código Delphi [-]procedure TFBusVend.txtCodigoChange(Sender: TObject); Var Valor,Valor1 : String; begin if (txtCodigo.text <> '') then begin modulo1.UModulo.TablaVendedor.Locate('idVendedor', txtCodigo.Text,[loPartialKey,loCaseInsensitive]); GrillaBusVend.Visible := true; Valor := txtCodigo.text; Valor1 := Valor; inc(Valor1[length(Valor1)]); modulo1.UModulo.TablaVendedor.Filter := 'idVendedor >= '+QuotedStr(Valor)+ ' and idVendedor < ' +QuotedStr(Valor1); modulo1.UModulo.TablaVendedor.Filtered := True; end else begin GrillaBusVend.Visible := false; end end;


eso fue lo que hice y funciona lo que quiero, salvo por una cosita, cdo borro todo se desaparece la tabla, eso es porq del lado del else dice GrillaBusVend.Visible := false; lo que no se es como volver a mostrar todos los registros de vuelta. debe ser facil, pero estuve anoche hasta las 3 am buscando la manera .

Va mejorando!!! jeje

Saluditos!!
Intenta poniendo la propiedad Filtered en False, en vez de desaparecer el TDBGrid...
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference

Última edición por Fenareth fecha: 24-08-2008 a las 06:11:37.
Responder Con Cita
  #34  
Antiguo 30-08-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola a todos, aqui la correccion a mi codigo, espero que ni sea demaciado tarde
Solo cheqear que el edit no este vacio, pues entonces las operaciones de sumas de caracteres serian inconsistentes
Código Delphi [-]
Var
Valor,Valor1 : String;
begin
if Edit1.text = '' then exit
valor := Edit1.text;
Valor1 := Valor;
inc(valor1[length(Valor1)]);
Tabla.Filter := 'Campo >= '+QuotedStr(Valor)+ ' and Campo < ' QuotedStr(valor1);
Tabla.Filtered := True

Con esto debe hacer precisamente lo que buscabas irixita y tanbien lo que buscaba quien origino este hilo

Cita:
Tengo un edit y un dbgrid, si yo quiero buscar la palabra "casa", voy escribiendo "c" y en la grilla me tendría que aparacer los que empiecen con "c". Después escribo la "a", y en la grilla tendría que aparecer los que empiecen con "ca". Luego la "s" y en la grilla "cas" y así...
Espero que me entiendan la explicación
Esperando haber ayudado y pidiendo disculpa por la tardanza les saluda

Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #35  
Antiguo 31-08-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Thumbs up

buenas noches como andan haciendo unas correciones a lo planteado por yusnerqui modifique el codigo a mi conveniencia haciendo los que buscaba irixita al igual que mi persona en un principio, haciendo la busqueda letra por letra y reflejandolo, pero le anexe que mientras el edit de busqueda este en blanco muestre todos los registros. aqui se los dejo a mi me funciono de maravilla!! ahora ando buscando como hacer que la busqueda sea indiferente a lo que ingrese es decir asi yo pise 'x' bien sea mayuscula o minuscula me registre todo lo que comience por dicha 'x'...
Código Delphi [-]
Var
Valor,Valor1 : String;
begin
     if Edit1.text = '' then
     begin
     Tabla.Filtered := false;
     exit;
     end;
         Tabla.Locate('campo', edit1.Text,[loPartialKey,loCaseInsensitive]);
         valor := Edit1.text;
         Valor1 := Valor;
         inc(valor1[length(Valor1)]);
         Tabla.Filter := 'campo >= '+QuotedStr(Valor)+ ' and campo < ' +QuotedStr(valor1);
         Tabla.Filtered := true;
          end;

sin mas nada que agregar saludos!!
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #36  
Antiguo 01-09-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola
Bueno en primer lugar no le veo sentido a esta línea:
Código Delphi [-]
  Tabla.Locate('campo', edit1.Text,[loPartialKey,loCaseInsensitive]);
estás haciendo una búsqueda y después un filtrado, es como trabajar dos veces , por otra parte, he probado el código y he comprobado que efectivamete es insencible a mayusculas y minúscula, es decir que es justo lo que buscas
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #37  
Antiguo 01-09-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Smile

Bueno yusnerqui ami me funciona al pelo lo unico es que toma en cuenta las mayusculas y las minusculas, noc xq ati te da el resultado que yo busco bueno yo tengo lo siguiente:

1. un edit para hacer la busqueda, al momento de ingresar palabras el verifica si estan guardadas en la tabla.
2. un panel que en si contiene un dbgrid que es donde me refleja la busqueday utiliso el panel, xq contiene otra serie de opciones como modificar o añadir nuevo!
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #38  
Antiguo 01-09-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
que base de datos usas?
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #39  
Antiguo 12-09-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
hola! Uso Delphi 6 y Tablas dBase IV...
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #40  
Antiguo 12-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por edfz Ver Mensaje
Cómo puedo hacer para que al ir escribiendo en un edit, se vaya buscando la palabra en un dbgrid? Teniendo la grilla ya cargada.
En mi página web, en la sección de ejemplos, tienes uno titulado:
"Realizar búsqueda incremental y visualizarla sobre un DBGrid"

Creo que te puede servir, si no exactamente, al menos de Guía. Está con el código fuente, así que puedes descargarlo y mirartelo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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


La franja horaria es GMT +2. Ahora son las 06:58:53.


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