Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Componente para buscar registros, para no repetir codigo. (https://www.clubdelphi.com/foros/showthread.php?t=67604)

flystar 26-04-2010 00:34:17

Componente para buscar registros, para no repetir codigo.
 
Hermanos:

Ustedes saben que hay cosas en los proyectos que se repiten como el clásico Altas, Bajas, Edicion, Validacion de datos y por supuesto y obvio las famosas busquedas clasicas para poder ubicar el registro a trabajar.

Cosas que se repiten a lo largo de un proyecto clásico.

Tengo unos controles llamados infopower y entre ellos hay uno que me ayuda a hacer busquedas, como funciona?

Al activarlo, el genera una ventana donde aparece un grid con los datos de una dataSet donde se pretende encontrar algun registro, luego tambien pone un edit en donde ustedes pueden capturar un valor y automaticamente al irlo escribiendo, va haciendo una busqueda incremental en los registros, cuando se hace la busqueda, tambien va redirigiendo el cursor del dataset al registro mas cercano...incluso si eso causa problemas, tiene la opcion para mover el cursor en otro dataset dirigido a la misma tabla fisica para no mover de posicion el registro en el cual nos encontramos, eso es genial, ya saca ventana, y ya nos ayuda a encontrar el registro, sin embargo ese método de busqueda no se me hace muy efecivo.

Si por alguna razón no nos acordamos del inicio de dicho valor a buscar, sera complicado encontrarlo, sería mas interesante si nos hace una busqueda de los registros que contengan dicha palabra escrita en cualquier parte del valor del registro, pero bueno eso NO LO HACE, solo hace busquedas incrementales.

Lo optimo para no repetir codigo y codigo sería encontrar componentes que den la función de encontrar un registro mediante filtrado tipo like '%valor%'
y que saque la ventana de busqueda y el edit para encontrar el valor y todo..jejeje

Tambien podría estar creando todo a mano pero pues estaría perdiendo tiempo.

Quizas ustedes conoscan un componente especializado en busquedas de registros y que no me mueva de lugar el puntero del registro donde me encuentro actualmente por que luego eso causaria problemas para regresar donde estabamos.

Los Jedi si hacen busquedas, pero tambien sol la hacen incremental, no la hacen tipo like '%valor%'.

Igual podrìa tambien poner en una ventana un grid y el edit que se encargara de las busquedas y confirarlas al vuelo, pero sería un reverendo relajo configurar cada columna en su ancho dependiendo del tipo de campo a mostrar.

EL chiste es ahorrar tiempo lo mejor posible, y no estar reinventando la rueda a la medida de lo posible.

Que orientacion me pueden dar en base a esto tan comun.

Gracias.

Caral 26-04-2010 00:41:21

Hola
Mas que un componente me suena a un form especializado.
Saludos

flystar 26-04-2010 00:52:46

Si es un componente, en el caso se llama TwwSearchDialog, es que como voy a creer que no haya componentes ya hechos para busquedas de registros? Digo la onda es ahorrar tiempo.

Debe haber...pero no se cuales sean, ando buscando pero todavía no los encuentro.

Un auxilio please...

flystar 26-04-2010 01:07:58

Bueno claro si hay...pero solo he visto y tengo para busquedas incrementales, pero esa busqueda no es muy efectiva en terminos practicos para el usuario, aunque quizas lo sea en terminos técnicos.

NO se me hace lógico estar creando formas para cada busqueda de registros para diferentes tablas. El de infopower se acerca mucho..pero sus busquedas son incrementales..chale..

Caral 26-04-2010 02:24:55

Hola
Cita:

Empezado por flystar (Mensaje 361878)
.....
NO se me hace lógico estar creando formas para cada busqueda de registros para diferentes tablas. .....

En realidad a lo que me refiero es a hacer un form ÚNICO para que haga todas las búsquedas sin importar la tabla.
Hice algo así, con la ayuda de roman y funciona muy bien, eso si, en access, no se en otras BD.
Saludos

movorack 26-04-2010 02:50:18

Como te dice caral, un form especializado para esa tarea es una buena opción...


flystar 26-04-2010 22:47:49

como aprender a hacer componentes
 
y cual serìa la referencia mas recomendada para aprender a fabricar un componente que hiciera eso?

AzidRain 26-04-2010 23:24:24

Las búsquedas incrementales solo son buenas si tienes unos cuantos cientos de registros con pocos campos pero si intentas hacer eso en tablas de millones de registros con cientos de campos te vas a ver en un embrollo pues para que está búsqueda funcione decentemente requiere que los datos ya estén en memoria y cuando hablamos de tablas de este tamaño pues es un problema. Lo que yo sugiero para estos casos es una ventana con como tu dices exactamente un grid que no muestre TODOS los campos sino solo los descriptivos de cada registro, vamos, si se trata por ejemplo clientes basta con poner su nombre y 2 o 3 campos mas, luego en el edit el usuario escribe parte de algun campo y un pequeño boton para lanzar la búsqueda que en realidad es una consulta SQL. El problema en hacerlo como dices es que crea sentencias SQL bastante complejas ya que no se limita a buscar en un solo campo sino en varios. Se puede hacer poniendo una serie de opciones para que el usuario elija sobre que campo buscar:
Por ejemplo, un combo que diga BUscando: Nombres, Teléfonos, fechas, etc. cualquiera sea el caso de los campos y luego hacer la consulta según lo haya pedido el usuario.

Este esquema es más adecuado para bases de datos grandes y que trabajan via internet, para casos de tablas planas o aplicaciones de escritorio (la misma terminal es a la vez el servidor SQL) las puedes realizar como planteas sin tener gran pérdida de rendimiento.

brakaman 28-04-2010 23:11:17

1 Archivos Adjunto(s)
Cita:

Empezado por flystar (Mensaje 361876)
Si es un componente, en el caso se llama TwwSearchDialog, es que como voy a creer que no haya componentes ya hechos para busquedas de registros? Digo la onda es ahorrar tiempo.

Debe haber...pero no se cuales sean, ando buscando pero todavía no los encuentro.

Un auxilio please...

Hola amigo , veo que usas las infopower pero no has comprobado que tienen otro componente que hace lo que tu quieres. es El TwwlocateDialog

Al lanzarlo presenta un pequeño formulario donde puedes elegir buscar por campo y despues en un DBEdit te pregunta el texto a buscar con 3 botones de radio en donde eliges , coincidencia parcial al inicio, coincidencia dentro del campo (eso es lo que tu quieres) y el resto creo que es coincidencia exacta.

Te adjunto detalle de como actua este componente sacado de un programita mio.

Saludos.

AzidRain 28-04-2010 23:16:15

oye brakaman ese componente esta muy bien pero me parece poco amigable para el usuario final que creo que es lo que nuestro amigo quiere. El usuario final ni sabe que es eso de campo ni de "coincidencias" ni cosas así, al menos no el usuario promedio de aplicaciones administrativas. Pero igual es una buena idea que puede servir para detallarla y amoldarla...muy buena observación.


La franja horaria es GMT +2. Ahora son las 18:48:50.

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