Especificación del filtro en una lupa con formulario sin usar variables
- Publicado por [N3] rcueto.velneo
- Desarrolladores
La lupa es el objeto que nos permite programar condiciones de filtrado de listas para que puedan ser ejecutadas directamente por el usuario final. En este artículo voy a explicar cómo especificar el filtro de una lupa cuando ésta usa un formulario para la petición de los datos, sin necesidad de utilizar variables globales.
En una aplicación de gestión comercial queremos programar una lupa que permita al usuario final, sobre una lista de facturas de venta, obtener aquellas cuyo importe sea igual o mayor al que indique el usuario en el formulario. El identificador del campo que recoge el total de la factura es TOT-FAC.
El primer paso será crear el formulario para la petición de datos; ha de ser un formulario especial para búsqueda. En él añadiremos un control de edición del campo TOT-FAC y dos botones, uno que dispare la función “Aceptar” (para aplicar el filtro) y otro que dispare la función “Cancelar”:

A continuación crearemos la lupa, le asociaremos la tabla de facturas de venta, el formulario anterior y la fórmula del filtro:
Como se puede observar el valor del campo indicado por el usuario en el formulario se referencia añadiendo el prefijo:0 a su identificador.
Etiquetas: desarrollo, filtro, lupa, programación, Velneo










Septiembre 3, 2008 - 09:29 #
¿Esto es válido para V7, para V6.4.1 o para V6.x?
Si, como tú dices, “ha de ser un formulario especial para búsqueda”, ¿para qué necesita los botones ‘Aceptar’ y ‘Cancelar?
No entiendo la fórmula del filtro: ¿Qué tiene que ver, en cualquier caso, el nº de factura?
Lo del :0 , ¿es cero ó es o?
Septiembre 3, 2008 - 13:31 #
Hola Cuco,
¿Esto es válido para V7, para V6.4.1 o para V6.x?
Esto es valido para Velneo 6.x, evidentemente Velneo 6.4.1 es una versión de Velneo 6.x con lo que esto es aplicable a todas las versiones de Velneo 6.x.
Si, como tú dices, “ha de ser un formulario especial para búsqueda”, ¿para qué necesita los botones ‘Aceptar’ y ‘Cancelar?
Los botones son necesarios para aceptar y cancelar el filtrado. La condición de que el formulario este marcado como especial para búsquedas no dota al formulario de botones, solo es para que el formulario se pueda seleccionar en la lupa. La lupas solo permiten seleccionar formularios marcados como especiales para búsquedas al igual que las búsquedas. Pero solo las Búsquedas dotan al formulario de botón para Buscar y Cancelar automáticamente. Es posible que en el pre o post del botón de la Lupa sea necesario disparar un proceso.
No entiendo la fórmula del filtro: ¿Qué tiene que ver, en cualquier caso, el nº de factura?
Lo tuyo si que es hilar fino. Disculpa el fallo ya se ha cambiado la imagen. Se trata de un filtro de facturas del mismo o un importe superior al introducido por el usuario.
Lo del :0 , ¿es cero ó es o?
Se trata de un cero.
Un saludo y muchísimas gracias por tus comentarios.
Septiembre 3, 2008 - 14:16 #
Buenos días.
No utilizo las lupas puesto que tengo entendido que un filtrado genera mas sockets y por lo tanto es mas lento funcionando a través de Internet, ¿pasa con las lupas lo mismo?. Yo utilizo formularios con variables y va muy bien, ¿que ventajas e inconvenientes hay utilizandolo asi? ¿es mejor con las lupas?
Muchas gracias, un saludo.
Septiembre 3, 2008 - 16:19 #
Hola oscarmjarez,
Las lupas son filtrados y en el aspecto de su funcionamiento son idénticas.
La ventaja que nos dan las lupas es que son filtrados preprogramados que si ponemos públicas se adjuntan de manera automática al menú contextual, accesible con el botón derecho del ratón, de todas las rejillas de la tabla a la que pertenece la lupa. Esto permite al usuario utilizarla sobre cualquier listado de la tabla en el momento que el desee.
No debemos confundir las Lupas con Búsquedas, ya que son objetos distintos y con finalidades totalmente distintas. Esto lo podemos ver de una manera muy clara si estudiamos los orígenes y resultados de ambos objetos:
Búsqueda: Origen ninguno, debe ser llamada desde un menú, barra de herramientas, Página Web, etc. Como resultado, devuelve un listado de registros encontrados.
Lupa: Origen lista, debe ser llamada desde una lista preexistente de la tabla y trabajará a partir de esta lista. Como resultado, deja en la misma lista los registros que cumplen la condición.
Respecto a los filtrados te comentaré que no se trata de que generen más sockets, sino que el filtrado requiere la lectura secuencial de los registros, uno a uno, para comprobar si cumplen una determinada condición. Por ejemplo un filtrado sobre una lista de registros ya leídos es inmediato. Puedes comprobarlo realizando dos veces seguidas un filtrado sobre la misma lista.
Se recomienda usar Filtrados solo en listados donde conozcamos el número de registros a filtrar y por tanto podamos asumir el tiempo que tardará.
Por el contrario en ningún lugar se desaconseja al usuario final el uso de filtrados para manejar la información que tiene en pantalla, ya que probablemente estos registros ya habrán sido leídos. Además un usuario siempre puede cancelar un filtrado o Lupa que haya realizado el, en cambio si en un proceso el programador incluye un filtrado el usuario no puede hacer nada más que esperar a que finalice.
Un saludo.
Septiembre 4, 2008 - 17:43 #
Gracias Cuco, te me has adelantado. Cuando vi la fórmula que aparecía en el dibujo se me salieron los ojos y pensé que me había vuelto tonto. Ahora tiene sentido. Tomo nota de la utilidad. Y muchas gracias al Sr. González por su paciencia y buenas explicaciones. (Por cierto, vas a tener que actualizar esa foto).
Septiembre 4, 2008 - 17:56 #
Muchas gracias, a ti Francisco y tomo nota de lo de la foto.
Un saludo.
Junio 22, 2010 - 00:07 #
Hola a todos los colegas, necesito hacer un formulario que me busque en tre dos fechas y un cliente. lo he intendado de hacer pero no me ha funcionados.