Manejando búsquedas

En el artículo anterior, explicabamos como hacer una búsqueda clásica de v6, mediante variables locales, aprovechando que la v7 recoge de forma automática las variables locales del formulario que tiene asociado, si estas existen también en la búsqueda.

Bien, ahora vamos a independizar el formulario de la tabla, y por tanto también de la búsqueda. Antes teníamos un formulario PAI_BUS (con origen la tabla PAI)  y una búsqueda PAI_BUS con el formulario anterior asociado.

Ahora copiamos el mismo formulario anterior, pero le quitamos la tabla, dejándolo como un formulario sin origen (BUS_VAR), como todos los datos que pedíamos eran de variables locales, funcionará sin errores. Copiamos también la búsqueda a PAI_BUS_VAR, quitándole el formulario asociado.

Ahora crearemos un proceso sin origen, y con destino lista de la tabla PAI.

En este proceso, primero debemos llamar al formulario sin origen, para pedir las variables, y a continuación pasarle las variables a la búsqueda y ejecutarla. Todo esto se consigue gracias a las instrucciones de manejo de objetos.

En el proceso crearemos las mismas variables locales que habíamos creado en el formulario y la búsqueda

Propiedades del proceso

Ahora creamos los manejadores de objetos.

Primero creamos un manejador “bus_form”  al que asociamos el formulario sin origen BUS_VAR.

Disparamos el objeto y recogemos el valor de las variables, mediante la instrucción “Get variable local del objeto”.

Luego creamos otro manejador para la búsqueda “buscar”, mediante la instrucción “Set variables local del objeto” le pasamos los valores recogidos del formulario.

Disparamos la búsqueda.

El proceso quedaría así:

Diferencias entre el artículo anterior y este:

ARTICULO ANTERIOR ARTICULO ANTERIOR
Formulario con origen la tabla PAI Formulario sin origen, utilizable para múltiples tablas
Búsqueda con formulario asociado. Solo utilizable con el formulario Búsqueda sin formulario asociado. Utilizable desde múltiples procesos, pasando solo las variables que se necesiten
Proceso. Conecta los dos objetos anteriores

Como vemos el segundo sistema tiene un objeto mas, pero a la hora de hacer lo mismo con otra tabla ya se iguala, puesto que solo duplicamos los dos últimos objetos (búsqueda y proceso), ya que el formulario puede ser usado para cualquier búsqueda de cualquier tabla. Por otra parte un búsqueda con variables locales y sin formulario puede ser usada desde múltiples procesos, y por lo tanto para múltiples fines.

Ahora si nos imáginamos una tabla mas compleja, por ejemplo un histórico de movimientos, con búsquedas por muchos mas índices, resolviendola de esta forma se puede utilizar el una infinidad de procesos.
Por ejemplo para ver todos los movimientos entre fechas, par ver todos los movimientos de un artículo entre fechas o todos,…..

Anuncios

4 comentarios en “Manejando búsquedas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s