Manejando búsquedas
Publicado por Nacho en 11 octubre 2010
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
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,…..


cristian escribió
Nacho que interesantes artículos estos de búsquedas … muy bien explicados.
Nacho escribió
Gracias Cristian, me alegro que te gusten y se entiendan.
Pepeto's blog » Blog Archive » Guia V7: proyectos de aplicación escribió
[...] Manejando búsquedas (Nacho) [...]
Pepeto's blog » Blog Archive » Consejos para mejorar el desarrollo en la nube escribió
[...] el punto nº 5, tenemos un ejemplo en el blog de nuestro amigo Nacho de Guida21: Manejando búsquedas y otro ejemplo en este mismo blog: ¡Prescindiendo de las variables [...]