Lupa

Este objeto se utiliza para crear condiciones de filtrado de listas.

Para hacer el filtrado podemos, o bien establecer la condición de filtrado en el propio filtro, o bien usar un proceso.

Para crear un objeto de este tipo seleccionar la opción nuevo objeto/lupa del menú objetos de Velneo vDevelop o a través de la galería de objetos.

Propiedades

Identificador

Etiqueta alfanumérica que identifica de forma unívoca una lupa dentro del proyecto de aplicación. Este identificador será el que usemos para referenciarla en otras propiedades de otros objetos.

Constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca una lupa no puede haber duplicidad.

Nombre

Etiqueta alfanumérica que servirá como descriptor de la lupa. Se usará para presentar información de la lupa en objetos y en los inspectores.

Podemos definir una etiqueta por cada idioma presente en el proyecto.

Estilos

Podemos definir los estilos siguientes:

Privado

Permite limitar el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

Personalizable

Si activamos este estilo, el objeto podrá ser reemplazado por otro del mismo tipo en tiempo de ejecución mediante un objeto reemplazo.

Comentarios

Esta propiedad nos permite documentar el uso de la lupa.

Tabla asociada

Tabla de un proyecto de datos heredado sobre la que se va a realizar el filtro.

Formulario

Si hemos diseñado un formulario para petición de datos para el filtrado, lo seleccionaremos en esta propiedad. El formulario deberá tener su origen en la misma tabla que la lupa.

Esta propiedad no estará activa en las lupas que creemos dentro de proyectos de datos, pues el formulario es un objeto de proyecto de aplicación.

Fórmula filtro

Permite especificar la condición del filtrado secuencial. El filtro se establecerá mediante una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad.

Proceso

En lugar de establecer una fórmula filtro podemos definir un proceso. El proceso debe tener como origen y como destino lista de la tabla asociada a la lupa.

La entrada del proceso será la lista sobre la que ejecutamos la lupa.

El proceso debe retornar una lista con el comando de instrucción de proceso añadir lista a la salida.

La lista retornada será cruzada con la lista de origen, es decir, tras la ejecución de proceso la lista resultante serán los registros de la lista de origen que se encuentren en la lista retornada por el proceso.

Plano de ejecución

odremos especificar el plano de ejecución del proceso seleccionado en la propiedad anterior.

1er plano: local (síncrono)

El proceso es ejecutado en el cliente.

3er plano: servidor (síncrono)

El proceso será ejecutado en el servidor. En este caso, debemos tener en cuenta que no podemos usar en él comandos de instrucción de proceso que interactúen con la interfaz.

Ejemplo

Supongamos que, en una lista de facturas y queremos dejar solamente las facturas del año en curso. Para ello necesitaremos:

Una búsqueda de facturas por el índice del campo FECHA entre límites. Los límites inicial y final los resolveremos con dos variables locales llamadas: FCH_INI y FCH_FIN respectivamente.

Un proceso con origen y con destino lista de la tabla de facturas como el que sigue:

REM ( Creamos una instancia de la búsqueda )
Crear manejador de objeto ( bus, Búsqueda VTA_FAC_FCH_LIM@ejemplo )

REM ( Asignamos valores a las variables de la búsqueda 1 de enero y 31 de diciembre del año en curso )
Set variable local del objeto ( FCH_INI, setDate(year(currentDate()), 1, 1) )
Set variable local del objeto ( FCH_FIN, setDate(year(currentDate()), 12, 31) )

REM ( Disparemos la búsqueda y la enviamos a la salida )
Disparar objeto ( bus )
    Añadir lista a la salida

Las propiedades fórmula filtro y proceso son excluyentes, si usamos una, la otra será inactivada.

Paso de variables entre el formulario, la lupa y el proceso

Es posible pasar variables locales del formulario a la lupa y de la lupa al proceso.

Para ello, lo que tenemos que hacer es crear en los tres objetos las mismas variables locales (mismo identificador y tipo).

La recomendación es copiar las variables que hemos creado en el formulario y pegarlas en la lupa y, si vamos a usar un proceso para el filtro, también en éste.

El mero hecho de declarar variables idénticas en los tres objetos hará que se pase su contenido de un objeto a otro sin que tengamos que hacer nada.

Ejemplo 1

Creamos un formulario con una variable de tipo fecha: FCH y lo asociamos a la lupa para que el usuario introduzca una fecha y filtrar la lista por ella.

En la lupa, crearemos una variable local idéntica: FCH, de tipo fecha.

En la fórmula filtro, escribiremos:

#FCH = FCH

Ejemplo 2

Vamos a mejorar el ejemplo del proceso que hemos explicado antes, para que se pueda filtrar entre dos fechas que el usuario quiera, así que haremos lo siguiente:

Creamos un formulario con dos variables de tipo fecha: FCH_INI y FCH_FIN y lo asociamos a la lupa para que el usuario introduzca los límites de fecha por los que filtrar la lista.

Copiaremos esas variables locales del formulario y las pegaremos en la lupa.

En el proceso, pegaremos también esas dos variables locales y lo dejaremos así:

REM ( Creamos una instancia de la búsqueda )
Crear manejador de objeto ( bus, Búsqueda VTA_FAC_FCH_LIM@ejemplo )

REM ( Asignamos valores a las variables de la búsqueda con los valores introducidos por el usuario en el formulario )
Set variable local del objeto ( FCH_INI, FCH_INI )
Set variable local del objeto ( FCH_FIN, FCH_FIN )

REM ( Disparemos la búsqueda y la enviamos a la salida )
Disparar objeto ( bus )
    Añadir lista a la salida

Uso de las lupas

En tiempo de ejecución, las lupas públicas (estilo privado desactivado) se incluirán automáticamente en los siguientes puntos:

  • En el menú de contexto de las rejillas, dentro del submenú filtros.

  • En el menú de listas, dentro del submenú filtros.

En Velneo vDataClient solamente estarán disponibles las lupas que programemos en el proyecto de datos.

Última actualización