Se ha hecho esperar pero ya tenemos una nueva entrega de nuestro famoso juego “Sabías que“. En este post veremos curiosidades sobre gráficos, manejadores y CSS… ¡en vDevelop!.

Por si te perdiste las cinco primeras entregas del “juego”, no está de mas recordarlas:

¿Sabías que..?

Los gráficos nativos se pueden imprimir con vReport, pero con ciertas limitaciones.

    • Si queremos imprimir un gráfico nativo de Velneo podremos hacerlo con VReport teniendo en cuenta lo siguiente:
      • En Vreport no se ejecutarán los eventos del gráfico y por lo tanto cualquier asignación de variables locales no tendrá efecto
      • Si el modo de leyenda es “Interactiva” tampoco podemos reflejar el estado de visualización de las series
    • El gráfico nativo de Velneo es un objeto estático que solo puede ser personalizado en vReport mediante el proceso que lo alimenta y el uso de variables globales.
    • Sin embargo en QML podemos usar el componente ChartView, interactuar con él, guardar en disco una foto e imprimirla en vReport.

Las Cestas con el mismo nombre se reutilizan cuando son creadas en un manejador llamado por otro.

    • Aunque muchos ya lo sabréis, no está de más recordar este comportamiento ya que puede ocasionar errores graves en nuestra aplicación.
    • Despista el hecho de que tengamos que usar el comando “Cesta: crear cesta local” y sin embargo la cesta se reutilizará si le asignamos el Nombre de una Cesta creada previamente en un manejador padre.
    • Usaremos el comando “Cesta: limpiar” inmediatamente después de crearla para asegurarnos de que no se reutiliza.
    • Más información en la ayuda de Velneo.

Los manejadores de evento encadenados se comportan como un solo proceso.

    • Ejecutar un manejador de evento desde otro manejador no implica generar un nuevo proceso.
    • Las transacciones abiertas en el segundo manejador no se cierran hasta que termina el primer manejador
    • Es un comportamiento diferente al de los procesos y por eso es importante recordarlo.
    • Más información en la ayuda de Velneo.

Obtener el primer y último día del mes.

    • En Velneo disponemos de la función daysInMonth(fecha)
Set (FECHA, currentDate())
Set (PRIMERDIA, setDate(FECHA), month(FECHA), 1)
Set (ULTIMODIA, setDate(FECHA), month(FECHA), daysInMonth(FECHA)))
    • En Javascript restamos un día al primer dia del mes siguiente
var fecha = new Date();
var primerDia = new Date(fecha.getFullYear(), fecha.getMonth(), 1);
var ultimoDia = new Date(fecha.getFullYear(), fecha.getMonth() + 1, 0);

Un Manejador de Evento puede utilizarse para validar los datos antes de guardar.

    • Ejecutar un Manejador de evento VALIDAR_REGISTRO con variable Local LOK para el retorno.
    • Ejecutando los comandos “Set retorno de proceso = No” y “Finalizar proceso” el valor de LOK será 0, de lo contrario 1.
    • Comprobamos el valor de LOK para validar la Ficha.
    • De esta forma podemos ejecutar VALIDAR_REGISTRO como si fuera una función.
    • Nos servirá para comprobar la Ficha antes de Guardar y en el evento On_Close si el usuario cambia de pestaña sin Guardar.
Interfaz: Ejecutar manejador de evento (VALIDAR_REGISTRO, LOK)
If (LOK)
  Interfaz: Aceptar
else
  ...

CSS en vDevelop.

    • ¿No te gusta el aspecto de vDevelop? ¿Has notado como tu vista cansada sufre desde que usas Velneo?
    • Construye entonces tu propio CSS tal como lo harías para una aplicación de vClient para tu mejor cliente.
    • Usa el parámetro -stylesheet=<path>\hoja_estilo.css en vDevelop.exe y todo cambiará.
    • Y aunque no te lo creas está documentado.
    • Tenemos en Internet algún ejemplo de CSS en Qt-Creator que podemos aplicar a vDevelop.

En la imagen siguiente se muestra el editor de código con fuente de espaciado fijo, consolas y 14pt.

Ordenar Controles en los Formularios.

    • El panel de subObjetos de vDevelop muestra la lista de todos los controles en la pestaña del mismo nombre.
    • Seguro que más de una vez habrás pensado que es una herramienta claramente insuficiente.
    • Hay procedimientos que pueden pasar desapercibidos.
    • Por ejemplo, ¿ cómo podemos ordenar varios objetos rápidamente ?

      • Mantén pulsado Shift y haz click en varios controles en el mismo orden en que deben ser ordenados.
      • Pulsa Ctrl+X para cortar los controles seleccionados.
      • Selecciona un Control del formulario.
      • Pulsa Ctrl+V para pegar los controles.
      • Los controles se situarán después del control seleccionado y en el orden deseado.

Condiciones de Estilo en Rejillas, no sobrescribir el valor de Color de fondo.

    • En el subObjeto “Condición de estilo” de la Rejilla podemos definir las propiedades de Color de texto y Color de fondo.
    • Aunque solo queramos cambiar el Color de texto, el Color de fondo se aplicará siempre, que será blanco por defecto.
    • Si la Rejilla tiene un color de fondo alternado (efecto de cebra), aplicado mediante CSS, cuando se aplica la “Condición de estilo” las columnas afectadas perderán el efecto cebra.
    • Para evitarlo no tenemos más que definir un color transparente en la propiedad Color de fondo. Un color transparente se obtiene poniendo a cero el canal alfa del Selector de color.

Usar funciones en vReport.

    • Desde un informe vReport tenemos acceso a las tablas y al resto de objetos del Proyecto de datos de la Aplicación.
    • Por lo tanto, podemos ejecutar Funciones del Proyecto de datos desde el Editor de fórmulas.
    • Una aplicación inmediata puede ser imprimir los acumulados en el Encabezado del agrupamiento en lugar de hacerlo en el pie.
    • Esto es otra forma de hacer más potentes y dinámicos nuestros informes

Evitar la ejecución de un Dock de Formulario.

    • El objeto Dock de Formulario es una potente herramienta para mostrar o gestionar información de forma permanente en nuestra aplicación.
    • Un Dock de Formulario es accesible en vDevelop desde cualquier objeto del proyecto de aplicación.
    • Además de mostrar u ocultar el Dock, disponemos del comando “Interfaz: set dock features” para determinar su comportamiento de cara al usuario.
    • Pero, ¿cómo podemos evitar que se cree un Dock de formulario según el perfil del usuario?
    • Muy sencillo, pongamos un comando “Set retorno de proceso = NO” en el manejador PRE_INI del formulario y ya no habrá rastro del Dock en nuestra aplicación.

 

Y ahora confiesa… ¿cuántas de estas curiosidades gráficos, manejadores y CSS… ¡en vDevelop! sabías? 

Déjame un comentario mas abajo y comenzamos el debate.