Filtros complejos

 Principal Novedades Utilidades Código Enlaces Access Acerca de mí

     
 
Principal
Arriba

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jbFilterscls.dll

Descargar FiltrosCls.zip

Es muy frecuente tener un formulario para filtrar otros formularios o informes. Elegimos fecha, cliente, número de albarán... y construimos con esos valores una cadena de texto que nos va a servir de filtro; además queremos tener la posibilidad de si no ponemos nada, o si ponemos "Todo", en uno de esos controles que no filtre por él. Es una tarea que resulta difícil a muchos y al menos laborioso a la mayoría; los distintos tipos de datos, las dichosas comillas dentro de comillas, hacen que a menudo se atraviese.

He construido dos clases para facilitar esto. Una gestiona un control del formulario y genera automáticamente un filtro en el evento AfterUpdate; es necesaria una instancia de esa clase para cada control que vayamos a usar como origen del filtro. La otra clase gestiona la fusión de los distintos filtros simples en uno solo compuesto.

Una tercera clase, clsEntreFechas, ya estaba publicada pero la incluyo en la dll porque se puede combinar perfectamente con las demás.

Para usar esta utilidad habría que hacer lo siguiente:

- Registrar la dll

- Incluirla entre las referencias de la Base de Datos

- Dimensionar un objeto clsFiltroMix

- Dimensionar tantos objetos clsControlFilter como controles vamos a usar

- Asignar a cada uno de esos objetos propiedades como Nombre del Campo, Nombre del Control al que nos referimos o el FiltroMix en que se van a mezclar (con éstas es suficiente)

Haciendo esto, cada vez que modifiquemos el valor de uno de esos controles en el formulario se modificará el cuadro de texto que contiene el filtro complejo. Las clases se encargan de gestionar, de manera oculta, el formato para el tipo de dato, el tipo de control, los eventos AfterUpdate de cada uno, etc.

Hay más propiedades y más posibilidades; por ejemplo, el hecho de poder de trabajar con distintas instancias nos da la posibilidad de que, con el mismo formulario y los mismos controles, podamos obtener distintos filtros al mismo tiempo para abrir distintos objetos con el mismo formulario.

Llevo varios años trabajando con esto y lo que he conseguido ahora es simplificarlo y hacerlo más sencillo de usar, por eso las posibilidades de la utilidad llegan bastante más lejos de lo que me resulta fácil explicar, de manera que tendré que hacerlo poco a poco y en distintas entregas. De momento, aquí va el primer ejemplo: Descargar FiltrosCls.zip

 

P.D. ¿Por qué una dll? Porque quería preservar el código fuente de los módulos de clases y no conseguí utilizar las clases desde un archivo mde incluido en referencias.