Listaprv

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

     
 
Principal
Arriba
Listapr2.htm

 

 

 

 

 

 

 

 

 

 

 

 

 

Instalación Código Descarga Introducción Funcionamiento Nuevo

 

Listaprv

Es algo distinto. Si alguna vez te has visto, o has visto al usuario de tus aplicaciones, copiando en un papel nombres de un listado o de un formulario, entonces lo necesitas.

Con una simple orden llamas a un pop-up que se autoinstala y al que puedes ir añadiendo campos desde el formulario activo con el que interactúa. Puedes añadir o quitar de uno en uno o todos a la vez, o quitar los que coinciden con el formulario o los que no coinciden, o usarlo como filtro del formulario. Con los datos trabajados puedes ir a otro formulario (incluso de otra base de datos) con el que añadir, quitar , filtrar...

Es la solución a los filtros complejos: desde filtros sencillos vas añadiendo o quitando y, finalmente, usas el resultado como filtro.

 

Instalación

La forma de usarlo es marcarlo como "Referencia" en el diseño del Módulo, en el Menú "Herramientas".

A partir de ese momento, podemos llamar desde cualquier otro procedimiento, por ejemplo, desde un botón, al procedimiento listaprv simplemente escribiendo en el procedimiento de evento Listaprv.

La primera vez que lo llamamos desde una base de datos se inicia un asistente para inicializarlo, lo mismo ocurrirá con cada formulario la primera vez que sea llamado. Listaprv.mde almacena toda la información necesaria de cada base de datos y cada formulario y de las listas que se usen. En la base de datos activa la única modificación que realiza es vincular una tabla llamada listaprv para que el desarrollador pueda disponer de ella como origen de listados, de consultas, etc.; puedes usarla sin temor pues no modifica nada más tu base de datos.

Introducción

Determinadas aplicaciones tienen una tabla especialmente protagonista, si es de personal será empleados, si es de marketing será el cliente... la mayoría del resto de las tablas hacen referencia a esa protagonista y el usuario constantemente trabaja información de ese sujeto desde distintos ángulos.

Imagínate una promoción muy especial donde se va a hacer un regalo caro a una serie de clientes y se quiere afinar mucho para que al final salga rentable: deberías seleccionar determinado grupo de edad y de nivel de estudios, pues son los que pueden estar interesados en el producto, pero también los que han comprado un producto anterior porque éste es su complemento ideal, eso sí excluyendo los que han tenido problemas con los pagos, además añadimos a todos los clientes de la agencia X porque es la que mejor índice de ventas tiene, a la mujer y a las amigas del jefe, que se apuntan a todos los regalos y a fulanita, que me la quiero ligar.

Parece exagerado, pero hay muchas aplicaciones con las que se debe trabajar así. Un usuario normal es incapaz de hacer un filtro semejante con tantas tablas, algunas quizás en distintas bases porque las trabaja otro departamento; si son pocos los registros a seleccionar irá formulario a formulario aplicando filtros, los que tú le hayas puesto en la aplicación, y apuntando y tachando nombres en un papel.

Ese papel, esa lista donde vas quitando y poniendo nombres es precisamente esta aplicación, pero todo se hace automáticamente

Vas al formulario clientes haces un filtro por formulario y seleccionas los de determinada edad y nivel de estudios, abres listaprv y pulsas el botón añadir todo, te pasas al formulario ventas por productos que tiene un subformulario donde figura la fecha y el cliente, seleccionas el producto que querías, abres listaprv y pulsas el botón añadir todo, te pasas al formulario agencias, quizás en otra base de datos, con su subformulario clientes, seleccionas la agencia X, abres listaprv y pulsas el botón añadir todo, en pagos, filtras los clientes problemáticos, abres listaprv y pulsas el botón "quitar según" y dejas sólo los que no te coincidan con ese formulario, finalmente, en clientes buscas a la mujer del jefe, a sus amigas y a fulanita y, una por una, las metes en la lista. Aunque sean miles de registros, apenas has tardado unos minutos.

La lista resultante puede ser el filtro de cualquier otro formulario, simplemente llamando a listaprv y pulsando "usar como filtro", pero también puede intervenir en cualquier consulta, pues, al inicializarla en la base de datos activa, el asistente ha vinculado la tabla listaprv y está disponible. Es una herramienta pensada para que el programador desarrolle otras cosas a partir de ella.

Llamadas a procedimientos

Listaprv tiene tres procedimientos públicos y una función pública:

Sub Listaprv: abre el formulario listaprv si es la primera vez que lo hace, abre un asistente de inicialización.

Sub Listaprv_BorraForm("Nombre del formulario"): Borra las referencias en Listaprv.mde al formulario de la base de datos activa que se indique. Está pensado para eliminar referencias que se hayan inicializado erróneamente.

Sub Listaprv_BorraBase ("Nombre de la base"): "): Borra las referencias en Listaprv.mde a la base de datos que se indique y de todos los formularios de ésta; si "Nombre de la base" es nulo, borra las referencias a la base de datos activa. También está pensado para eliminar referencias que se hayan inicializado erróneamente.

Function macroprv(). Está pensada para ser llamada desde una macro de teclado. Se puede importar desde Listaprv.mde una macro de teclado que la llama. Si no está abierto el formulario Listaprv, lo abre, le pasa el foco, le añade un elemento desde el formulario activo y devuelve el foco al campo del formulario activo que lo tenía antes. En combinación con una macro de teclado (p.ej. Mayús+F9) puedes ir buscando en un formulario y, cada vez que pulse Mayús+F9, añades a la lista el cliente por el que vayas y vuelves al control en el que estabas.

 

Funcionamiento

El funcionamiento interno de Listaprv es fácil de entender:

Para cada base de datos nueva pregunta en que tabla se van a basar los datos y la vincula, luego pregunta cuál es el identificador único de esa tabla y, a partir de él, crea una tabla llamada listaprv (listaprv1, listaprv2... según corresponda) con un único campo idéntico al identificador único: esa es la verdadera lista donde se van a ir añadiendo y quitando datos.

Pregunta también qué otros campos se quieren mostrar en la ventana de la lista y almacena sus nombres. Toda la información que va pidiendo la va almacenando en un registro para cada base de datos.

Cuando llamamos a Listaprv desde un formulario, es necesario saber cuál es el nombre del campo identificador único con el que va a trabajar la lista, y si se trata de un formulario o de un subformulario. Por eso necesita inicializar cada formulario y almacenar esa información en un registro para cada formulario, vinculado al registro de base de datos.

Como cada base de datos está identificada por el nombre, si trabajamos con una copia con otro nombre, Listaprv no la reconocerá y abrirá el asistente de inicialización, sin embargo, no es necesario repetir todo el proceso: el asistente nos muestra una lista con todas las bases que tiene registradas, seleccionamos la original y la opción "Copiar todas las especificaciones" y se copiarán automáticamente todas las especificaciones de la base y de cada formulario.

A veces distintas bases de datos tratan el mismo tema y por eso queremos compartir la misma Lista; si en la inicialización elegimos una base ya registrado y seleccionamos "Copiar las Especificaciones Generales", ambas bases compartirán la misma lista y lo que se añada o quite en una así quedará en la otra y viceversa.  

ListaPrv funciona perfectamente en red, incluso es aquí donde se puede obtener un mayor provecho de ella, sin embargo es necesario realizar algunos ajustes. Si quieres usarla en red, escríbeme.

Descarga 

Descargar archivo .MDE

J.Bengoechea, 2 de septiembre de 1999

 

Listaprv es una herramienta con la que llevo trabajando años. Para mí es muy útil y muy fácil de usar, estoy seguro que a cualquiera que entienda su manejo le resultará también útil y fácil. Sin embargo, no sé si sé explicar en qué consiste y cómo es el manejo de algo que, por ser para mí tan familiar, no conozco sus pegas. Si la probáis, agradecería que me escribierais con vuestra opinión sobre la herramienta y con las dificultades que habéis encontrado para entenderme. Gracias.