![]() |
búsquedas en dbgrid
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! |
Pudieras Probar
Hola creo que pudieras probar en el evento on change del edit algo así
Var Valor,Valor1 : String; begin valor := Edit1.text; Valor1 := Valor; inc(valor1[length(Valor1)]); Tabla.Filter := 'Campo >= '+QuotedStr(Valor)+ ' and Campo < ' QuotedStr(valor1); Tabla.Filtered := True //Donde campo es el campo por donde vas a filtrar //Se pone lento en dependencia de la cantidad de registros que tenga la tabla. end; mas o menos así Un saludo |
porqué lento?
tengo una duda. cada vez que se pone el filtro en "true", se consulta en la base de datos?
|
Cita:
[Error]Unit10.pas(1233): Operator not applicable to this operand type [Error]Unit10.pas(1233): Incompatible types: 'String' and 'Boolean' tambien estube trabajando con otro codigo que me encontre en el foro pero a la hora del cambio del edit, el dbgrid se coloca en blanco el codigo lo extraje de aqui gracias por la ayuda que puedan brindarme... ___________________________________ Utilizo delphi6 y tabla dbaseIV |
Hola,
Yo hago algo exactamente igual a lo que pide edfz de esta manera: En el evento OnChange del TEdit tengo el siguiente código:
y funciona de perlas... ;) |
hola Fenareth.. bueno con tu codigo me pide que identifique loPartialKey,loCaseInsensitive..
puede que sea nada pero es que no tengo mucha experiencia en delphi . gracias... |
Cita:
Cita:
salu2!!!!!!! |
le agregue en uses 'DB' y ahora el error es:
le agregue en uses 'DB' y ahora el error es:
[Error] Unit10.pas(1223):Incompatible types: 'TLocateOptions' and 'TLocateOptions' |
Hola,
¿Por casualidad no será de que estás olvidando del corchete de apertura:confused:?:
Saludos, |
gracias Delphius
cierto estaba copìando mal
y deberia ser
Gracias!!!! |
Cita:
la 'culpa' la tiene Fenareth :D:D ella fue la que puso el codigo mal ... :p:p salu2!!!!!!! |
pregunta fuera del tema!!
donde puedo conseguir los comandos para darle funcion a diferentes teclas del teclado por ejemplo enter #13 lei por ahi que salian de los codigos ascII pero lo que consegui es la manera de llamarlo en la forma hex amenos que esa sea..
gracias... |
Cita:
|
Agradecido
Holas a todos...
solo un comentario para yusss.... Exelente el codigo de filtro... Me sirvio mucho para este novato... Gracias nuevamente... |
Probando la busqueda de yusnerqui
Cita:
Probando este codigo me da un error en ejecucion, el tema es que cuando borro el ultimo caracter me aparece el siguiente: Proyect Yuhmak.exe raised eception class EAccessViolation with message 'Access violation at address 004CC87E in module 'Yuhmak.exe'. Write of address FFFFFFFF'. Process stopped. Use Step or Run to continue. ¿Que es eso? y ¿Como se soluciona? Desde ya muchas gracias... y espero puedan ayudarme |
Hola irixita ! :)
Porqué no pruebas el otro código aquí expuesto ?
Saluditos |
Hola Fenareth
Buenas Fenareth.... si lo probe... mi pregunta ahora... donde lo pongo... en el boton de busqueda o en el evento onChage del edit?
Si lo probe... pero se me hace que lo estoy poniendo en un lugar distinto.:rolleyes: Por eso lo probe con otro que habia ahi.... espero que me hayas comprendido...:) esperare respuesta... |
En el evento OnChange del TEdit... ;)
|
hola irixita
en rojo colocas el edit donde vas hacer la busqueda!! en azul la tabla donde se encuetra ubicada y lo colocas en el on change del edit! espero poder ayudarte! |
Cita:
salu2!!!!!!! |
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...:) |
Cita:
|
Cita:
Cita:
|
Cita:
para VER solo aquellos registros que coincidan, se puede hacer uso de la propiedad FILTER del componente TTable que estes ocupando ;);) salu2!!!!!!! |
Cita:
Código:
modulo1.UModulo.TablaVendedor.Filtered := false; me explico?... de todos modos voy a intentar buscar la forma de hacerlo, si lo consigo, lo subo ;) SALUDOS!!! |
Cita:
No seria necesario QuotedStr() .... .... pero si ya esta tratado esto en otro hilo ... lo mejor seria que estos problemas/detalles los comentaras allá .... salu2!!!!!!! ;);) |
jandok238
Ok voy a buscar el hilo de nuevo...=S ya me olvide como era el titulo :p 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...:p:p 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. :cool: |
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 :o:o 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... ;);):D:D no se si esto te sirva...... salu2!!!!!!! |
Hola el codigo me quedo algo asi:
hice una mezcla de los codigos que vi :p
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 :confused:. Va mejorando!!!:D jeje Saluditos!! |
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!!!! |
Cita:
para tu problema tenes que poner en el evento onKeyPress del edit la siguiente linea.
Ahora cdo borras todo te aparece la lista completa? o como te aparece? Al fin ayudo a alguien!!! :p jeje sos al primero que le saco una duda :D Saludetes!!! |
A me habia olvidado. si es para numeros la linea seria:
Espero que te sirva a vos y al que lo necesite!!... ;):) |
Cita:
|
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 :)
Con esto debe hacer precisamente lo que buscabas irixita y tanbien lo que buscaba quien origino este hilo Cita:
Yusnerqui |
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'...
sin mas nada que agregar saludos!! |
Hola
Bueno en primer lugar no le veo sentido a esta línea: 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 :) |
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:confused: 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! |
que base de datos usas?
|
hola! Uso Delphi 6 y Tablas dBase IV...
|
Cita:
"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. |
La franja horaria es GMT +2. Ahora son las 20:39:29. |
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