Tutor de lupas

Introducción

La lupa es un objeto se utiliza para crear condiciones de filtrado de listas.

Todas las lupas públicas que creamos en un proyecto de aplicación, se incluyen automáticamente en el menú de de contexto por defecto o por defecto extendido de objetos de lista, como por ejemplo, las rejillas y rejillas avanzadas.

En este tutor vamos a crear tres lupas:

  • Una que filtre pedidos cuyo importe total supere el 1.000.000 de €.

  • Una que filtre los pedidos de un cliente concreto.

  • Una que filtre una lista de pedidos que estén comprendidos entre un intervalo de fechas.

Lupa de pedidos de más de 1.000.000 de €

  • Para crear una lupa seleccionar el objeto del mismo nombre del almacén de objetos.

Para esta lupa especificaremos las propiedades siguientes:

  • Identificador: LUP_BAS.

  • Nombre: Filtrar: pedidos de más de 1.000.000 €.

  • Tabla asociada: PED_G.

  • Fórmula filtro: en esta propiedad debemos establecer la fórmula del filtro. Dado que queremos obtener los pedidos de más de 1.000.000 de € la fórmula será:

    #TOT_PED > 1000000

Lupa de pedidos de un proveedor

Para esta lupa vamos a necesitar un formulario para que el usuario pueda seleccionar un usuario.

Para poder pasar el cliente seleccionado en el formulario a la lupa usaremos una variable local. Para ello, debemos:

  • Crear en el formulario una variable local en el formulario y guardar en el ella el dato.

  • Crear en la lupa una variable local idéntica a la del formulario (mismo identificador, nombre y tipo).

Simplemente haciendo eso el sistema se encargará de pasar el valor de uno a otro objeto.

Para ello hemos creado el formulario PED_G_CLT, que únicamente contiene un control de edición del campo enlazado a CLIENTES, una variable local en la que configuraremos las propiedades siguientes:

  • Identificador: ID_CLT.

  • Nombre: Cliente.

  • Tipo: numérico.

El botón aceptar del formulario asigna el cliente seleccionado a la variable local y acepta el formulario del filtro:

Rem ( Mover el ID del cliente a la variable local compartida por la lupa )
Set ( ID_CLT, #CLT )
Interfaz: Aceptar

A la lupa generada para este ejemplo, le hemos asignado las siguientes propiedades:

  • Identificador: LUP_CLT.

  • Nombre: Filtrar: pedidos de un cliente.

  • Tabla asociada: PED_G.

  • Formulario: PED_G_CLT

  • Fórmula filtro: en esta propiedad debemos establecer la fórmula del filtro. Dado que queremos obtener los pedidos de un cliente, filtraremos la lista por el ID del cliente guardado en la variable local:

    #CLT = ID_CLT

Lupa de pedidos entre fechas

En esta ocasión vamos a hacer una lupa algo más compleja.

En las lupas que hemos visto hasta ahora hemos establecido el filtro en la la propiedad fórmula filtro de la lupa. Pero también es posible usar un proceso para hacer el filtro.

El proceso debe cumplir con los requisitos siguientes:

  • El proceso debe tener como origen y como destino lista de la tabla asociada a la lupa.

  • El proceso debe obtener una lista de esa tabla, y se enviará a la salida del mismo con el comando de instrucción de proceso añadir lista a la salida.

El sistema cruzará la lista retornada por el proceso con la lista desde la que se ha disparado la lupa, por lo que el resultado será que en la lista quedarán solamente los registros que coincidan en ambas.

Al igual que hemos visto que se pueden pasar variables locales entre el formulario de búsqueda y la lupa, se puede hacer lo mismo con el proceso, es decir, si replicamos en el proceso las mismas variables locales que hemos definido en la lupa, se pasará su contenido automáticamente de la lupa al proceso.

Para este ejemplo hemos creado un formulario llamado PED_G_FCH_LIM que edita dos variables locales de tipo fecha llamadas FCH_DES y FCH_HAS.

Hemos creado un proceso llamado PED_G_FCH_LIM cuyo origen y destino lista de PED_G, como el que sigue:

Rem ( Disparamos la búsqueda de pedidos entre fechas )
Crear manejador de objeto ( bus, Búsqueda PED_G_FCH@velneo_vTutor_app )
Set variable local de objeto ( bus, FCH_DES, FCH_DES )
Set variable local de objeto ( bus, FCH_HAS, FCH_HAS )
Disparar objeto ( bus, 1º plano: Local (síncrono),  )
    Añadir lista a la salida

El proceso dispara la búsqueda PED_G_FCH que busca pedidos entre límites de fecha, asignando a las variables locales de la búsqueda las variables locales del proceso.

Finalmente, hemos creado la lupa LUP_FCH_LIM, con las propiedades siguientes:

  • Identificador: LUP_FCH_LIM.

  • Nombre: Filtrar: pedidos entre fechas.

  • Tabla asociada: PED_G.

  • Formulario: PED_G-FCH_LIM.

  • Proceso: PED_G_FCH_LIM.

  • Plano de ejecución: 3er plano. Hemos seleccionado este plano porque en el proceso no se requiere la intervención del usuario, así se ejcutará más rápido que si se ejecutase en primer plano.