FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Mejorar búsqueda
Hola amigos, en una aplicación para el área de Ventas que estoy desarrollando tengo una ventana para crear una factura.
En esta ventana tengo un edit para que el usuario introduzca el código de la empresa, si no se lo sabe puede presionar F2 y le muestro en otra ventana todas las empresas que tengo en el nomenclador usando un DBGrid. Encima de este DBGrid he puesto otro edit para que el usuario teclee parte del nombre de la empresa para así encontrarla más rápido. Para lograr lo anterior he usado el evento OnChange del edit y he puesto el siguiente código:
Hasta aquí todo funciona bien siempre y cuando el usuario vaya poniendo el nombre de la empresa como está escrito en la BD. Por ejemplo si tengo las siguientes empresas en el nomenclador: EMP. COMERCIALIZADORA ESCAMBRAY EMP. MAYORIXTA DE PRODUCTOS VERDES EMPRESA AUTOMOTRIZ S.A EMPRESA INMOBILIARIA AZUL y quiero buscar rápidamente la EMPRESA AUTOMOTRIZ S.A hay que escribir necesariamente EMPRESA A y quisiera que al escribir AUT se me posicione en el registro en cuestión. Hay alguna forma de lograr lo anterior?, estoy usando tablas Paradox. Gracias. |
#2
|
||||
|
||||
Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 29-01-2010 a las 21:35:26. |
#3
|
||||
|
||||
Me parece que todos los componentes de datos nativos trabajan de esa manera.
Algo que puedes hacer, sin tener que recurrir a componentes de terceros ni escribir mucho código, es crear un campo calculado que contenga los mismos nombres pero a partir de la segunda palabra. Entonces podrías llamar a Locate con el primer campo y, en caso de no encontrarse un registro, llamar a Locate con el campo calculado. De cualquier manera, considera que Paradox y BDE son tecnologías obsoletas y que presentar en pantalla una lista de n registros para que el usuario selecciona uno solo, puede resultar lento y pesado para el sistema cuando esos n registros sean cientos o miles. En muchos casos es una mejor práctica lanzar una consulta SQL parametrizada con la parte de texto que quieres encontrar, haciendo que se carguen en memoria solamente los registros que cumplan con el criterio de búsqueda. Te invito a echar un vistazo a los sistemas cliente-servidor y de n capas. Un buen paso para mí y muchos otros compañeros del foro que solíamos usar Paradox fue comenzar a practicar con Firebird. Saludos. Al González. EDITO: Ahora veo el mensaje de rgstuamigo. Última edición por Al González fecha: 29-01-2010 a las 21:31:36. |
#4
|
||||
|
||||
Yo para esos casos lo que uso es un componente que se llama JvDBFindEdit, de JEDI, el cual permite cambiar la propiedad de findStyle a AnyPos, o FisrtPos
Otra ventaja de este componente es que tiene una propiedad que se llama findMode, que puede ser filter, y es una busqueda incremental va quitando los que no coinciden, es exelente. Yo siempre lo hago asi, uso ese componente y le pongo tambien un checkbox, para cambiar el find style a anypos o firstpos si no encuentra al principio. Si necesitas mas informacion avisame Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!! |
#5
|
|||
|
|||
Cita:
Deja ver si instalando las JEDI puedo usar el componente JvDBFindEdit y logro lo que quiero. Reconozco que Paradox y BDE son tecnologías obsoletas pero esta aplicación que estoy haciendo es para ejecutarse en un PC aislado de la red y es un "cacharrito", por eso tomé la decisión del BDE y Paradox. No obstante si alguien tiene experiencia en el desarrollo de aplicaciones para PC con poca RAM (256 MB), un micro Celeron a 1.X GHZ, etc que me lo diga para tenerlo en cuenta porque siempre es bueno aprender. Ya tengo descargado el Firebird y 2 documentos que hablan sobre la creación de aplicaciones o sistemas cliente-servidor y de n capas los cuales descargué de este maravilloso Club. Gracias por sus aportes. |
#6
|
||||
|
||||
Cita:
Tu codigo quedaria asi: . Pruebalo...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 01-02-2010 a las 16:41:58. |
#7
|
|||
|
|||
Cita:
Ahora déjame analizar el que escribiste a ver si resulta. Gracias por tu preocupación y dedicación. |
#8
|
|||
|
|||
Cita:
|
#9
|
||||
|
||||
Solo agregar que seria mejor si tambien incluyeras la opcion foCaseInsensitive tambien. Si tienes dudas revisa la ayuda de Delphi.
Otra cosa->>Cuando estes escribiendo(Postenado) trata en lo posible no visualizar (Boton de Vista Previa) ya que esto conlleva (cuando envias tu respuesta) a tener un codigo muy feo en el foro. Si se da el caso de que quieres visualizar lo que escribiste no le des Enviar Respuesta desde ahi tan solo presiona el boton de atras en tu navegador y desde alli guardas o envias tu respuesta. Ésto se debe a que el interprete que muestra los post , tiene un error(bug) internamente que hace que el formateo de codigo no se vea muy estético. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#10
|
||||
|
||||
Cita:
Los filtros no deben tener la Clausula "WHERE". Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#11
|
|||
|
|||
Cita:
Entonces como dije anteriormente le agregué a la consulta en tiempo de diseño la línea:
y modifiqué el código que había escrito inicialmente por:
y así resolví el problema. Ya me había dado cuenta que al visualizar el post para ver como me había quedado y luego al enviarlo todo se desarreglaba. A quién le toca arreglar ese bug???? Graciasssss |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Busco mejorar el rendimiento | Bkewater | Windows | 7 | 11-01-2008 19:03:53 |
Mejorar código. | REHome | .NET | 0 | 07-08-2007 21:37:55 |
Mejorar un cronometro | kokogua | Varios | 3 | 10-12-2006 14:12:57 |
Mejorar busqueda de registros y actualizacion | JuanchoArg | Conexión con bases de datos | 2 | 10-05-2006 03:06:48 |
Mejorar metodo!! | kye_z | Varios | 2 | 21-10-2004 18:56:53 |
|