BLOG

Velneo V7 7.15: Estabilidad en ejecución

Por [N4] fgutierrez.velneo el | Añadir comentario

comparativa velocidad.001 10.49.54La nueva versión Velneo V7 7.15 trae consigo muchas novedades y mejoras que redundarán en una mayor velocidad y estabilidad de las aplicaciones desarrolladas con Velneo V7.

Estas novedades no sólo se aplican al mejor funcionamiento de las aplicaciones desarrolladas, si no que también hemos trabajado en daros más herramientas para que podáis desarrollar aplicaciones en las que el usuario pueda disfrutar de la velocidad y estabilidad de la plataforma.

A continuación se detallan las novedades e incidencias solucionadas relativas al interfaz y a la ejecución de aplicaciones de Velneo V7, tanto con Velneo vClient V7 como con el resto de ejecutores (Velneo vDataClient V7, etc.).

Implementación del control Data catcher edit en rejilla y formulario

Se trata de un control de edición que se usará principalmente para la edición del contenido de campos enlazados a tablas de datos maestras. Permite buscar en una tabla para devolver un dato de otra tabla. Por ejemplo: recorrer un plural para seleccionar un maestro.

Este control tiene la particularidad de que se muestra un contenido y se edita otro. Además, admite subindexación.

Ejemplo: Artículos con plural de referencias. Permite seleccionar atrapar el artículo navegando por la tabla de referencias.

Ejemplo: Mezclando data catcher edit y subidenxación podemos trabajar con artículos multi-idioma. Se trataría de tener una tabla de traducciones enlazada a una de artículos y a una de idiomas. De esta forma, con este control podemos atrapar un artículo concreto recorriendo la tabla de sus traducciones a un idioma concreto (VBM-3717).

estabilidad_ejecucion_image10

Implementación de índices complejos y variables locales en localizador

Se ha mejorado el funcionamiento del objeto Localizador, añadiéndole nuevas funcionalidades:

A partir de la versión 7.15 podremos hacer uso de índices complejos en el localizador, por lo que podremos buscar registros de una tabla introduciendo datos de otra, tal y como permiten los índices complejos.

Además, podremos resolver las partes de un índice por medio de variables locales, que podremos alimentar disparando el objeto localizador con ayuda de los comandos de instrucción del grupo Objeto. (VBM-3718).

image01

Optimización de la ejecución de las condiciones de visible y activo de los controles de un formulario

A partir de la versión 7.15 se ha optimizado el funcionamiento de las condiciones de visible y activo, con lo que se reduce el número de veces que se disparan, haciéndolo únicamente las veces necesarias. De esta forma se mejora el rendimiento de los formularios usados en nuestras aplicaciones, lo que redunda en una mejor experiencia de usuario. (VBM-3614).

estabilidad_ejecucion_image03

 

Implementada la carga de plurales correspondientes a las tablas maestras en las tablas de extensión

En las tablas de extensión, el navegante a plurales mostraba únicamente los plurales de la tabla maestra (padre) pero no funcionaban. Tampoco funcionaba el comando cargar plurales, aunque en el combo del editor si aparecían correctamente los plurales de la tabla maestra (padre).

A partir de la versión 7.15 se han implementado las cargas de plurales correspondientes a las tablas maestras de las tablas de extensión, con lo que podremos hacer uso de esta opción en nuestras aplicaciones para ampliar la funcionalidad de las tablas de extensión. (VBM-3639).

Nuevas señales Pre-Edición aceptada y Pre-Edición cancelada

Cuando teníamos una rejilla editable con una conexión de evento asociada a la señal Edición aceptada o Edición cancelada, y en el evento correspondiente usamos el comando «Interfaz: Obtener la ficha en edición de la rejilla()» para acceder a la ficha, en ejecución, pese a aceptar la ficha, el subproceso de este comando no se ejecuta, no ejecutaba.

Este es el comportamiento esperado, ya que cuando se produce el lanzamiento de esa señal, en ese punto ya no está disponible la ficha que estamos editando.

A partir de la versión 7.15 se han implementado dos nuevas señales Pre-Edición aceptada y Pre-Edición cancelada, que podemos asociar a manejador de evento. Cuando estas señales se disparen, la ficha en edición estará viva y podremos acceder a ella a través del comando de instrucción «Interfaz: Obtener la ficha en edición de la rejilla», para realizar las tareas que sean necesarias. (VBM-3641, VBM-3642).

estabilidad_ejecucion_image17

 

La instrucción «Interfaz: establecer foco al control» permite seleccionar una columna de rejilla en la que posicionarse

A partir de la versión 7.15 se implementa la instrucción «Interfaz: establecer foco al control» que permite seleccionar una columna de rejilla en la que posicionarse, abriendo la edición en el caso de que esté configurada para esa columna.

De esta forma podemos gestionar en manejadores de evento de la rejilla la columna en la que queremos el foco según nuestras necesidades, ampliando la funcionalidad de las rejillas en nuestras aplicaciones. (VBM-3644).

Recálculo del valor de la propiedad “Número de decimales” para aplicarlo en cada fila de una rejilla editable

Cuando configuramos el número de decimales en función de una fórmula que toma valor distinto para cada fila, sin entrar a editar, se mostraba correctamente el valor correspondiente con el número de decimales configurado en cada fila, en ocasiones al editar, se mostraba el número de decimales correspondiente a una fila editada anteriormente.

Este comportamiento se debía a que no se estaba tomando en cada momento el valor de decimales por cada fila.

A partir de la versión 7.15, para cada fila se recalcula el valor del número de decimales a aplicar, con lo que podremos editar los números con el número de decimales dependiendo de la fila, facilitando la experiencia de usuario de las rejillas editables de nuestras aplicaciones. (VBM-3665).

estabilidad_ejecucion_image08

 

Implementación de la inducción en tablas de extensión

A partir de la versión 7.15 se contempla la inducción en tablas de extensión. La inducción se contempla en ambas direcciones, tanto si el plural es de la tabla padre como si es de la tabla de extensión.

– Se induce desde cualquier padre cargados en el mismo objeto u objetos padre, por ejemplo un formulario que tiene un separador de pestañas que dentro tiene otro separador y dentro una rejilla, podrían inducirse maestros de todos los formularios que intervienen en el ejemplo.

– En caso de que en una tabla haya varios punteros al mismo maestro (típico ejemplo de artículos con puntero a los 3 proveedores más habituales) siempre se resuelve el primero y sólo el primero, el resto ya no se resuelven.

– Los maestros y maestros de extensión se consideran como una misma tabla a la hora de hacer la inducción, por lo que si en la misma tabla tienes puntero al maestro y al maestro de extensión se resolverá el primero de ellos (en el orden físico en que estén declarados los campos en la tabla) y sólo el primero. En este caso recomendamos poner primero el maestro y que los campos punteros a maestros de extensión tengan como contenido inicial el campo puntero al maestro. (VBM-3696).

Configuración de idioma por parámetro de Velneo vClient V7 y dentro del qml

Para la configuración del idioma teníamos la opción de modificar una clave de registro que Velneo vClient V7 tomaba como referencia para establecer el idioma al inicio. Pero esto no era posible establecerlo para la personalización del login (por parámetros o Login QML).

A partir de la versión 7.15 se añade la opción de establecer el idioma de ejecución de Velneo vClient V7 por medio del parámetro /loginLocale o /llo, que nos permite establecer el idioma que tomará Velneo vClient V7. Para ello, debemos hacer uso del código de dos caracteres definido por la norma ISO-639, al que podemos añadir la variante del país según la norma ISO 3166-1 alfa-2 en el formato id_PA (Ejemplo: Español de España = «es_ES»).

También desde login QML podremos establecer el idioma de inicio de Velneo vClient V7. Por medio de la nueva función setLocale de la clase VLogin, podremos establecer el dioma de ejecución de Velneo vClient V7, indicando el idioma de igual forma que para el parámetro: theLogin.setLocale( id_PA ). (VBM-3547).

Revisión de las señales en todos los objetos

En la nueva versión 7.15 se han revisado todas las señales, tanto en ejecución como en edición, aquellas que estaban pendientes de implementar se han incluido en esta versión, y se han quitado del combo de selección cuando esa señal no está permitida, para evitar confusiones. (VBM-3653).

Aquí está el listado completo de las señales que se han revisado:

– Multivista: Grupo FocusKey, Grupo Mouse, Grupo Widget, Timer (No hay propiedad timer en Multivista)

Se han quitado en edición las señales no funcionales y se ha implementado el grupo Widget para este objeto.

– Caja de texto: Funciona la señal Ratón: botón pulsado pero no el resto de señales del Grupo Mouse

Se han quitado en edición las señales del grupo Mouse no funcionales.

– Caja de texto enriquecido: Funciona la señal Ratón: botón pulsado pero no el resto de señales del Grupo Mouse

Se han quitado en edición las señales del grupo Mouse no funcionales.

– Formulario: Grupo Widget

Se ha implementado el grupo Widget para este objeto.

– Bloc: Grupo Widget

Se han quitado en edición las señales del grupo Widget.

– Listbox: Sólo funciona Ítem: cambio seleccionado pero no el resto de señales del grupo Ítem que tiene asignadas

Se han quitado en edición las señales del grupo no funcionales.

– Combobox: Sólo funciona Ítem: cambio seleccionado pero no el resto de señales del grupo que tiene asignadas, que no incluye Ítem: Doble clic.

Se han quitado en edición las señales del grupo Mouse no funcionales.

– Árbol: Timer (El objeto no tiene la propiedad)

Se han quitado en edición la señal ya que no es funcional.

– Rejilla avanzada: Drop finalizado (El objeto no tiene  programado drop)

Se han quitado en edición la señal ya que no es funcional.

– Visor HTML:

   – No se disparan la señales Ganar foco y Perder foco

   – No se disparan las señales del grupo mouse excepto Ratón: Movimiento.

Se han implementado las señales

– Comboview: Sólo funciona Ítem: cambio seleccionado pero no el resto de señales del grupo Ítem que tiene asignadas

Se han quitado en edición las señales no funcionales excepto Ítem: Activado que ha sido implementada.

– Árbol: Grupo Mouse

Se han quitado en edición las señales del grupo Mouse ya que no son funcionales.

– ListaQML: Ítem simple clic, Ítem doble clic

Se han quitado en edición las señales ya que no son funcionales

– Alternador: ¿Señales show/hide se lanzan dos veces?

Corregido

– Informe: Señal disparada

Se ha implementado la señal

– Bloc: Post-inicializado

Se ha implementado la señal

– Marco: Grupo Show

Se ha implementado el grupo de señales

– Combobox: Ratón doble clic, Ratón movimiento

Se han quitado en edición la señales ya que no son funcionales

– Listbox: Grupo Mouse

Se ha quitado en edición el grupo ya que no son funcionales

– SVG Toggle: Value changed

Se ha implementado la señal

– SVG Switch: Value changed

Se ha implementado la señal

– Objeto dibujo: Value changed

Se ha implementado la señal

– Edición objeto fórmula: Value changed

Se ha implementado la señal

– Selección de fichero: Value changed

Se ha implementado la señal

– Selección de directorio: Value changed

Se ha implementado la señal

– Separador de formularios: Grupo FocusKey

Se ha quitado en edición el grupo ya que no son funcionales

– Caja de formularios: Grupo FocusKey

Se ha quitado en edición el grupo ya que no son funcionales

– Pila de formularios: Grupo FocusKey, Ítem: Cambio de seleccionado (Para cambiar el formulario se usa un manejador de evento)

Se ha quitado en edición el grupo ya que no son funcionales

– Splitter: Grupo FocusKey

Se ha quitado en edición el grupo ya que no son funcionales

– Rejilla avanzada: Grupo Mouse

Se ha quitado en edición el grupo ya que no son funcionales

– Formulario QML: Tiene la propiedad timer pero no tiene la señal. Funciona la señal Ratón: Botón pulsado pero no el resto de señales del grupo Mouse.

Se ha quitado en edición el grupo ya que no son funcionales, y se ha implementado la señal Timer

Los datos se adaptan a la configuración del tipo de campo, por ejemplo Alfa64 o Alfa40, en la pérdida de foco de un campo alfabético

estabilidad_ejecucion_image09

 

Cuando en ejecución editamos el contenido de un control correspondiente a un campo Alfa64 o Alfa40, al terminar la edición el control no mostraba el contenido actualizado según el tipo de dato hasta que no editábamos otro control.

Por ejemplo:

Si en una tabla declaramos un campo de tipo Alfa64, por ejemplo el campo NIF. En un formulario de origen de la tabla ponemos un control de edición alfabética y en el contenido declaramos el campo #NIF

En ejecución, cuando grabamos datos en el control de edición las letras que escribimos se ven en minúsculas. Al perder el foco el control de edición del campo #NIF los caracteres grabados se siguen viendo en minúsculas.

El contenido de ese campo no lo veremos en mayúsculas hasta que aceptemos el formulario y volver a abrirlo o modifiquemos otro campo, en cuyo caso vemos como el datos grabado en el campo #NIF se pone en mayúsculas.

A partir de la versión 7.15, cuando modifiquemos un contenido de esta forma, al perder el foco del control se actualizará el contenido de acuerdo al campo utilizado. De esta forma el usuario sabe cómo queda el dato nada más introducirlo, sin esperar a grabarlo en disco o editar otro campo. (VBM-1042).

Los cuadros de diálogo de resolución se cierran al aceptar con la tecla intro

Cuando tratábamos de resolver índices, campos en búsquedas, capilares de tubos, punteros indirectos, etc., nos aparecía un cuadro de diálogo de resolución de fórmulas que no permitía que se cerrara la edición aceptando con el botón Intro del teclado.

El cuadro de diálogo de resolución de fórmulas ha sido reprogramado, mejorándolo y optimizándolo y se le ha añadido la opción de atrapar la tecla Intro para cerrar el cuadro de diálogo. De esta forma mejora la usabilidad de este cuadro de diálogo que usamos tan a menudo. (VBM-1034).

El localizador al construir la rejilla que muestra la lista, toma como ancho de partida el ancho definido en la columna de la rejilla, con lo que podemos definir un ancho mínimo

Cuando presentábamos un localizador con una rejilla que incluía columnas con la propiedad Tipo de ancho con el valor «Máximo disponible», sucedía que la rejilla podría presentarse muy estrecha, ya que se ajustaban al poco espacio disponible.

A partir de la versión 7.15, el localizador al construir la rejilla que muestra la lista, toma como ancho de partida el ancho definido en la columna de la rejilla, con lo que podemos definir un ancho mínimo que permita ver la información que queremos presentar al usuario con suficiente amplitud, mejorando la experiencia de usuario y facilitando al usuario final la selección. (VBM-2088).

estabilidad_ejecucion_image07

 

Los estilos css se aplican en todos los objetos y controles de formulario

En determinados objetos y controles no se aplicaban los estilos CSS de forma correcta:

  • Edit de maestro
  • Rejillas (tanto como objeto como en controles objeto en formulario)
  • Control edición fecha: Si tiene activa la propiedad  «Con calendario».
  • Control calendario de edit
  • Calendario

A partir de la versión 7.15, todos ellos aplican los estilos CSS en todos los objetos y controles, con lo que podremos personalizar de forma completa nuestras aplicaciones para adaptarse a las necesidades de nuestros clientes. (VBM-1754).

El texto de la barra de estado se refresca cuando se sale de un menú asociado a un botón

En un formulario principal (asociado al marco) cuando tenemos un control «Botón», con un comando «Menú», al pasar por las opciones de menú aparece el texto en la barra de estado.

Cuando abandonábamos el menú (haciendo click fuera o lanzando la acción del menú), el texto de la barra de estado no se refrescaba.

A partir de la versión 7.15, este texto no permanece, con lo que se evitan errores y confusiones. (VBM-1875).

estabilidad_ejecucion_image04

 

La modificación mediante manejador de evento en un formulario se realiza para todos los tipos de campo

Cuando en un formulario tenía un campo de tipo booleano, fecha o tabla estática, y modificaba los campos usando un evento, al ejecutar el comando de instrucción «Interfaz: Aceptar», los cambios no se reflejaban en la tabla.

A partir de la 7.15, hemos mejorados los manejadores de evento disparados desde formularios para que los comandos de instrucción Interfaz: Aceptar e Interfaz: Guardar la ficha en alta o modificación atrapen los cambios realizados en campos con el comando de instrucción Modificar campo aunque dichos campos hayan sido modificados previamente por el usuario en los controles del formulario. (VBM-1895).

La edición en rejilla con el ratón (doble clic) se conserva en la siguiente línea (on changed) y se mejora la velocidad de cambio de línea

Cuando hacíamos doble clic con el ratón para iniciar edición en una rejilla editable, no se mantenía la edición más que en la siguiente línea, y en ocasiones tardaba más en continuar la edición.

Hemos mejorado la rejilla editable y a partir de la versión 7.15 se soluciona ésta y otras incidencias que hacen de la rejilla un objeto más usable y que proporciona una mejor experiencia de usuario, facilitando la entrada de datos haciendo uso de la rejilla editable. (VBM-2005).

estabilidad_ejecucion_image11

La tabulación en la rejilla editable salta los campos no editables

En la rejilla editable, cuando tabulábamos para pasar de una columna a otra, cuando se pasaba a uno que no es editable se cerraba la edición.

A partir de la versión 7.15, cuando pasamos a una columna que no es editable se salta a la siguiente y se mantiene la edición. (VBM-0098).

La propiedad “Alto de cabecera” de la rejilla determina el alto de la cabecera cuando tiene un valor mayor que 0 y se autoajusta al contenido con un valor igual a 0

Aunque definiéramos un valor en la propiedad Alto de cabecera, en ejecución no se hacía caso del valor establecido en dicha propiedad y la cabecera de la rejilla tomaba el alto ajustando al contenido de la cabecera.

A partir de la versión 7.15, el valor definido en esta propiedad se tendrá en cuenta a la hora de construir la rejilla. Un valor 0 en esta propiedad hará que el alto de cabecera se comporte como hasta la versión anterior, es decir, se autoajustará al contenido de la cabecera. Un valor distinto de 0, se aplicará al alto de la cabecera independientemente del tamaño del contenido.

Para que no suponga una modificación visual de las aplicaciones que están actualmente en producción, el valor que se tuviera en esta propiedad pasa a ser 0, de tal forma que continuará autoajustándose al alto de la cabecera, y podremos modificarlo si deseamos establecer un alto concreto independiente de su contenido. (VBM-2173).

Cuando se recalcula el contenido de una rejilla, las columnas se ajustan al ancho de la rejilla cuando se muestra la barra de scroll o se quita

Cuando cambiaba el contenido de una rejilla, por ejemplo con Interfaz: Procesar rejilla, o Quitar ficha de la lista, la barra de scroll dejaba un espacio en blanco si ya no era necesaria y no se mostraba, o tapaba los registros si se mostraba al tener más registros de los que podía mostrar la rejilla.

A partir de la versión 7.15, las columnas se ajustarán al ancho de la rejilla cuando se muestre la barra de scroll o se quite, evitando mostrar un espacio innecesario o tapar parte de la última columna de la rejilla, mejorando la experiencia de usuario. (VBM-2505).

estabilidad_ejecucion_image02

 

Se elimina un registro que se muestra con un formulario abierto desde una rejilla con el estilo simple clic

Cuando usábamos el estilo simple clic para que se muestre el formulario correspondiente a una rejilla, por ejemplo, y en el formulario pulsábamos el botón con la función eliminar, aunque mostraba el mensaje de confirmación de la eliminación del registro, al pulsar el botón sí, realmente no se eliminaba el registro y seguía apareciendo en la rejilla.

A partir de la versión 7.15, la eliminación se produce correctamente, quitando de la rejilla la fila correspondiente y evitando la confusión que generaba el uso de simple clic para mostrar formularios. (VBM-2621).

Mejorados editores automáticos en Velneo vDataClient V7

  • En Velneo vDataClient V7 al editar la columna de un campo fecha aunque el campo no tuviera contenido inicial, asumía por defecto la fecha de hoy, y una vez asumida no se podía eliminar.

  • En edición de fechas, horas y tiempo no se crea el control adecuado y falla el tabulador.

  • Campos punteros a tabla estática no podían modificarse

  • Los campos booleanos se mostraban como uno y cero.

  • No se producía el salto de columnas no editables.

A partir de la versión 7.15 se mejora y optimiza la rejilla editable de Velneo vDataClient V7, y se solucionan éstas y otras incidencias con lo que se mejora la experiencia de usuarios, facilitando el mantenimiento de datos de las tablas. (VBM-2626).

La propiedad «Alto» se aplica tanto al botón y como al alto del control en un control de edición de maestro que tiene declarado tipo de menú de botón

Cuando en un formulario incluíamos un control de edición de maestro que tenía declarado tipo de menú de botón, el valor de la propiedad «Alto» se aplicaba únicamente al botón y no al alto del control.

A partir de la versión 7.15, el valor que establezcamos en la propiedad «Alto» se aplica a todo el control, incluido el botón, con lo que podemos definir el alto que tendrá el control completo y adaptando la presentación del control en nuestro formulario a nuestras necesidades. (VBM-2688).

estabilidad_ejecucion_image14

 

A partir de la versión 7.15, cuando nos movemos de un control a otro una vez iniciada la edición, se selecciona el contenido, facilitando al usuario final la edición de los datos, mejorando la experiencia de usuario. (VBM-2740).

El botón del comando de instrucción mensaje aplica los estilos css configurados

Pese a definir un estilo CSS específico para aplicarlo en la ventana que genera el comando de instrucción Mensaje, éste no se aplicaba.

A partir de la versión 7.15, solucionada la incidencia, la ventana de mensajes aplicará el CSS correspondiente, permitiéndonos personalizar por completo según nuestras necesidades. (VBM-2745).

En rejilla editable, la edición de campo fecha continúa en la siguiente columna editable

Al llegar a la edición de un campo fecha con la tecla de tabulación se pasaba por el día, el mes y el año y al tabular finalizaba la edición de la fila en lugar de continuar editando el siguiente campo. El cursor seguía avanzado con la tecla tabulación pero sin entrar en modo edición.

A partir de la versión 7.15, una vez finalizada la edición de cada una de las partes de la fecha, se pasa al siguiente control sin cerrar la edición, con lo que se facilita la introducción de datos por parte del usuario final, mejorando su experiencia de usuario. (VBM-2766).

En una rejilla editable, si hay error en el alta, la línea en blanco correspondiente se limpia

Si en una rejilla editable hacíamos un alta de nuevo registro e inmediatamente pulsábamos la tecla Enter, el sistema intentaba hacer el alta, pero no la completaba por ser inválida, y la línea en blanco (sin ID) permanecía en la rejilla hasta que la refrescábamos. Además, no podíamos reutilizar esa línea para una nueva entrada.

A partir de la versión 7.15 esta incidencia se resuelve y en el caso de introducir una línea sin los datos necesarios, la fila no se limpia y podremos seguir introduciendo registros. Con esto facilitamos el mantenimiento de datos a través de rejillas editables, con lo que se mejora la experiencia de usuario. (VBM-2825).

Le ejecución del comando de instrucción set retorno proceso = NO en un manejador de evento lanzado por la señal edición iniciada limpia la línea en blanco de la rejilla

Para evitar la posibilidad de crear fichas desde una rejilla editable programábamos un evento de interfaz que, en caso de alta, retorne NO, disparado mediante una señal del tipo «edición iniciada».

En ejecución, al hacer el usuario doble clic en cualquier área vacía de la rejilla, se iniciaba la edición, se dispara el evento y se cancelaba la creación del registro, pero se pintaba una nueva línea en blanco al final de la rejilla.

A partir de la versión 7.15, cuando cancelemos la edición no se pintará una línea en blanco al final de la rejilla, mejorando la experiencia de usuario en las aplicaciones en que usemos la rejilla y esta funcionalidad. (VBM-2981).

En linux se implementa la selección de contenido en rejillas editables con campos maestro y numéricos cuando nos movemos por los registros en la misma columna

En Linux en una rejilla editable que editaba un maestro o un dato numérico, al movemos arriba y abajo por los distintos registros, haciendo uso de las teclas de dirección, no quedaba seleccionado todo el contenido del campo, como en un inicio de edición.

El registro dado de alta a partir de una acción asociada a un control de edición de un maestro se incluye en la vista de datos asociada al edit de maestro

En un formulario con un control de edición de maestro con vista de datos de lista, cuando creábamos un maestro, aunque se inducía a la ficha en curso, al desplegar la vista de datos no aparecía.

A partir de la versión 7.15, cuando demos de alta un registro maestro, el contenido de la vista de datos se refresca y se muestra en la vista. (VBM-2925).estabilidad_ejecucion_image12

 

Alta de registro en una rejilla editable asignada a la propiedad Vista de datos de lista

Estando en un control enlazado a maestro, con la propiedad de Vista de datos de lista activa y asignada una rejilla editable, si pulsábamos doble clic iniciando la edición de la rejilla, Velneo vClient daba un error y se cerraba.

A partir de la versión 7.15 este error no se produce, permitiendo el alta por medio de formulario de un nuevo registro maestro, facilitando la gestión de maestros al usuario final. (VBM-2961).

Las vistas desplegables cogen el ancho del control base, permitiendo que en ejecución se modifique el ancho del control

El cálculo de ancho de la rejilla asociada a una vista de datos de un edit variaba en función del número de registros. Si el maestro contenía pocos registros, se aplicaba el tamaño por defecto del objeto (la rejilla) y cuando había muchos registros, se ajustaban el ancho y el alto de la rejilla, dando a la rejilla el ancho del control.

A partir de la versión 7.15 este control ha sido mejorado y ahora las vistas desplegables cogen el ancho del control base, permitiendo que en ejecución se modifique el ancho del control con lo que se facilita la usabilidad del control, mejorando la experiencia de usuario. (VBM-2969).

Mejora en la ordenación de listas

A partir de la versión 7.15 disfrutaremos de una optimización en los procesos que requieran la ordenación de listas.

El ordenamiento se realiza en bloques mayores, más fáciles de gestionar y destruir con lo que mejoran todos los procesos que requieren ordenación y que trabajan con gran volumen de datos: Ordenar listas de gran tamaño en procesos, rejillas, salidas de búsquedas, etc., se verán beneficiadas de esta optimización, reduciendo los tiempos de trabajo mejorando la experiencia de usuario, que deberá esperar menos tiempo por la finalización de estas tareas. (VBM-3565).

El comando de botones «deshacer controlado» pide confirmación cuando se modifican líneas y no el maestro

Si activamos el bloqueo duro al un formulario clásico de cabecera con líneas e incluimos un botón que dispara el comando «deshacer controlado», cuando en el formulario de cabecera añadíamos alguna línea, al pulsar el botón, el sistema no pedía confirmación y deshacía la transacción directamente. Esto sucedía en alta, modificación y baja.

A partir de la versión 7.15, en los tres casos se agrupa la transacción y se incluyen las operaciones correspondientes, solicitando al usuario confirmación en el caso de cancelar el formulario de cabecera, tal y como espera, mejorando la usabilidad de las aplicaciones en las que hagamos uso de bloqueo duro.

Esta incidencia está relacionada con la incidencia VBM-3622 – En alta de formulario con bloqueo duro emular el bloqueo duro aunque no exista la ficha, que cierra el ciclo de esta incidencia, que se refiere al proceso de alta, ya que ahí se ha de simular el bloqueo duro al no haber realmente una ficha todavía. (VBM-3162).

estabilidad_ejecucion_image01

 

Unificación del criterio de visualización de los campos booleanos en la rejilla

Cuando se visualiza un campo booleano en la columna de una rejilla se mostraban los valores Sí y No. Sin embargo, si la rejilla es editable se mostraba en la columna un combo con los valores Verdadero y Falso.

A partir de la versión 7.15 se unifica el criterio de visualización de los campos booleanos en la rejilla, usándose el criterio Sí/No en todos los casos. (VBM-3405).

Se dispara el evento gana foco de un control de un subformulario incluido en un separador de pestañas que tiene delante otro subformulario que no es visible

Cuando en un separador de pestañas incluimos un subformulario que no es visible porque la condición de visibilidad no se cumple, no se dispara el evento gana foco de un subformulario que esté a continuación.

Solucionada la incidencia, la señal se dispara de forma correcta, por lo que podremos usarla para cubrir necesidades de nuestra aplicación. (VBM-3426).

La opción de navegante cargar maestros muestra los campos punteros a las tablas maestras de extensión

La opción Cargar maestros del Navegante no mostraba los campos enlazados a tablas maestras de extensión, con lo que no era posible realizar esta navegación a maestro.

A partir de la versión 7.15, la opción Cargar maestros presentará no sólo los campos enlazados a maestro  si no que también podrá el usuario seleccionar de entre los campos enlazados a tablas maestras de extensión, con lo que se amplía la funcionalidad de esta opción de menú en stock, ampliando de forma automática su funcionalidad en todas las aplicaciones en las que hagamos uso de esta opción. (VBM-3489).

estabilidad_ejecucion_image05

 

Se aplican las mismas configuraciones de fuente a las rejillas, tanto si se muestran sin edición, como cuando el usuario inicie la edición de la rejilla

En una rejilla editable, a la que le habíamos personalizado la fuente del cuerpo de las columnas, cuando una columna de la rejilla pasaba a modo editable, se cambiaba la fuente pasando a utilizar para la edición la fuente del sistema.

Esto sucedía también en los siguientes escenarios:

– Con alteración de la de sistema, incrementando su tamaño.

– Asignando una fuente personalizada distinta de la del sistema.

– Personalizando la fuente mediante la aplicación de hojas de estilo CSS.

A partir de la versión 7.15, se aplican las mismas configuraciones de fuente a las rejillas, tanto si se muestran sin edición, como cuando el usuario inicie la edición de la rejilla, de esta forma podemos personalizar también la visualización de las rejillas editables, de acuerdo a nuestras necesidades, lo que redundará en una mejor experiencia de usuario y usabilidad de nuestras aplicaciones.  (VBM-3521).

Implementada evaluación de una condición visible de un subobjeto inserción de un formulario de una tabla de extensión

Una condición visible de un subobjeto Inserción de un formulario de una tabla de extensión el sistema en ejecución devolvía campo inexistente al evaluarla cuando contenía campos de la tabla padre. Esto era debido a que la fórmula se calculaba con origen la ficha del formulario principal en lugar de la ficha de extensión.

Solucionada la incidencia, ahora el cálculo de la fórmula se realiza con origen la ficha de extensión, podremos usar sin problema campos de la tabla padre para las condiciones permitiéndonos aumentar las posibilidades para el condicionamiento de los puntos de inserción. (VBM-3550).

estabilidad_ejecucion_image15

 

Disparo de los contenidos iniciales de todos los campos en las tablas de extensión

Un campo de la tabla de extensión que tuviera como contenido inicial una fórmula que no dependiera de campos no se disparaba en el alta de la ficha.

Solucionada la incidencia, los contenidos iniciales de fichas de tablas de extensión se disparan tanto si usan campos dependientes como si no, permitiendo inicializar los campos que requieran ese tipo de fórmulas. (VBM-3562).

Se muestran en el formulario las modificaciones realizadas con «Interfaz: Obtener ficha en edición» en un manejador de evento asociado a señal disparada que se lanza desde una acción

En una rejilla editable, teníamos una columna con un menú que tiene una acción que dispara una señal.

El manejador de evento asociado a esta señal realizaba modificaciones en el campo correspondiente a la columna en curso con el comando de instrucción «Interfaz: Obtener ficha en edición».

En ese caso la modificación no se mostraba una vez realizada, sin embargo la modificación estaba hecha realmente: si hay columnas que obtienen su valor a partir de ese campo (bien por contenidos iniciales, bien porque sea un maestro), se ve refrescada esa información y al aceptar se guarda.

A partir de la versión 7.15 los datos modificados mediante «Interfaz: Obtener ficha en edición» en un manejador de evento asociado a señal disparada, lanzada desde una acción, se refrescan correctamente. (VBM-3590).

En una rejilla editable cuando la propia edición de una columna hace que no se cumpla la condición de edición de columna se puede continuar la navegación por la rejilla

Es una rejilla editable que tenía una única columna editable (campo NAME) de la tabla y como condición para editar columna usaba la fórmula siguiente: #NAME:isEmpty()

En ejecución, si el  último registro de la rejilla tenía el campo NAME vacío, editábamos la celda y le dábamos un valor, al tabular Velneo vClient V7 se quedaba bloqueado.

A partir de la versión 7.15, este caso es considerado en la tabulación y permite navegar de forma coherente con las condiciones establecidas, permitiendo al usuario final continuar trabajando en ese punto. (VBM-3606)

En una columna de rejilla editable puntero se muestra el menú contextual de la vista de datos a un edit de maestro

Si en una columna de una rejilla editable que editaba un campo puntero a maestro le declarábamos la propiedad vista de datos, en ejecución usando el menú contextual de la vista de datos en esa columna dábamos de alta el maestro, rompía Velneo vClient V7 al mostrarse el formulario correspondiente en vista de datos.

A partir de la versión 7.15, en ese caso el formulario se mostrará en cuadro de diálogo, ya que una vista de datos que proviene de un popup, ha de mostrarse también como modal. De esta forma, además, evitamos el error y el usuario final podrá dar de alta un registro sin provocar incidencia alguna en Velneo vClient V7. (VBM-3608).

En rejilla editable se dispara la señal edición aceptada si estando en edición hacemos clic con el ratón en una columna no editable

En una rejilla editable no se disparaba la señal edición aceptada cuando en edición hacíamos clic con el ratón en una columna no editable. Aunque sí se disparaba cuando cambiamos de celda usando teclado.

A partir de la versión 7.15, se implementa que acceder a una columna no editable implique el final de edición y por tanto se dispare la señal de edición aceptada. (VBM-3612).

El control edit de maestro se mejora incluyendo la opción de alta de registros en la vista de datos asociada

En una edit de maestro cuando le declaramos una vista de datos con una rejilla editable, al dar alta en la rejilla Velneo vClient V7 daba error y se cerraba si no había datos en la rejilla editable.

A partir de la versión 7.15 se ha mejorado y optimizado el funcionamiento del control edit de maestro, por lo que podremos declarar una vista de datos con una rejilla editable, pudiendo dar altas en esa misma rejilla, ampliando las opciones para dar funcionalidad a nuestras aplicaciones. (VBM-3628).

Mejora de la presentación de mensajes en rejillas editables

En una rejilla editable que tenía una conexión de evento asociada a la pérdida de foco de la rejilla, el manejador de evento que se ejecuta mostraba un mensaje con el comando de instrucción correspondiente Mensaje.

Cuando entraba a editar una celda, se disparaba la pérdida de foco, se ejecutaba el manejador de evento, se presentaba la ventana de mensaje, y al aceptar pulsando el botón correspondiente vClient daba error y se cerraba..

A partir de la versión 7.15, se soluciona esta incidencia. Sin embargo, hemos de tener en cuenta que en los manejadores de evento de foco no se recomienda hacer uso de mensajes, debemos mostrar la información de otra manera. (VBM-3645).

Implementación de los comandos Ficha: Localizar, Alta y Editar Maestro aplicadas en un menú de botón de un edit de maestro en una extensión de ficha

A partir de la versión 7.15 podremos hacer uso de las opciones de localizar, alta y editar maestro en controles de edición de maestro en extensiones de ficha, por lo que podremos aumentar la funcionalidad de nuestras aplicaciones, facilitando al usuario final la selección del maestro para la ficha en curso. (VBM-3651).

Se despliega la vista de datos de un control edit de maestro al pulsar el botón con el ratón, en un formulario abierto con un botón en modo popup desde otro

Cuando invocábamos un formulario desde el comando de botones mostrar subformulario popup y dicho formulario incluía un edit con la propiedad «vista de datos de lista» activada, no se desplegaba la lista haciendo clic sobre el botón para desplegar la lista.

Mientras que si usábamos la tecla aceleradora F4 sí se desplegaba.

A partir de la versión 7.15 podremos desplegar con el ratón la vista de datos una vez solucionada la incidencia, mejorando la experiencia de usuario y facilitando al usuario final el uso de esta funcionalidad en nuestras aplicaciones. (VBM-3655).

Alineamiento de los pie de rejilla con las columnas columnas correspondientes

En una rejilla con pie activo verdadero y con un modo de cabecera que incluya el vertical, el pie quedaba desplazado de sus columnas al recargar registros en la rejilla cuando cambiaba el ancho de la cabecera vertical.

En la carga inicial, cuando cargábamos algunos registros, el pie aparecía bien alineado, pero cuando luego cargábamos más registros, esto producía que aumentara el ancho de la primera columna «Cabecera vertical», desalineándose el pie.

A partir de la versión 7.15 se ha implementado el alineamiento del pie de la rejilla con las columnas, de tal forma que mejorará el aspecto visual de las rejillas con pie de nuestras aplicaciones, mejorando por tanto la experiencia de usuario. (VBM-3693).

estabilidad_ejecucion_image02

 

Mejora de la ejecución de las señales del grupo Ítem en conexiones de evento de formulario, de un alternador incrustado en formulario

En un formulario en el que incluíamos un alternador y en el formulario creábamos conexiones de evento con señales del tipo: Ítem: cambio de seleccionado, Ítem: simple clic asociadas al alternador, en ejecución, estas señales se disparaban dos veces cuando realizábamos la acción asociada.

A partir de la versión 7.15 este comportamiento no esperado se evita, con lo que las señales se dispararán una única vez en cada ocasión, evitando de esta forma disparos innecesarios de manejadores de evento. (VBM-3660).

Al borrar el primer o último registro de una rejilla se ejecuta el manejador de evento asociado a la señal Ítem: cambio de seleccionado al posicionarse en otro registro

En una rejilla definíamos un manejador de evento que mostraba información en un mensaje del registro seleccionado.

Al eliminar el primer registro o el último no se ejecutaba el manejador de evento asociado a la señal Ítem: cambio de seleccionado, pese a que se posicionaba en otro registro una vez eliminado y quitado de la rejilla el que se había borrado.

A partir de la versión 7.15, tanto si eliminamos cualquier otro registro como el primero o el último, se ejecuta el manejador de evento asociado a la señal de cambio de seleccionado, con lo que podremos usar esta señal para ejecutar un manejador de evento con las operaciones que nos interese realizar, aumentando la funcionalidad de nuestras aplicaciones. (VBM-3666).

En una página html mostrada en un control visor HTML se muestran los tooltips definidos con la etiqueta «alt»

En una página html que incluía una imagen con un atributo «alt», al pasar con el ratón no se mostraba en tooltip el texto correspondiente al atributo.

A partir de la versión 7.15, cuando las imágenes con el atributo «alt» mostrarán un tooltip con el texto definido, con lo que podemos facilitar información al usuario final de esta forma, mejorando la experiencia de usuario. (VBM-2513).

estabilidad_ejecucion_image06

 

En un manejador de evento después de ejecutar otro con el comando Interfaz: Ejecutar manejador de evento, se ejecutan los comandos de cesta sobre las cestas locales creadas previamente

En un manejador de evento creamos una cesta local. A continuación ejecutábamos un manejador de evento de V7 o javascript con el comando de instrucción Interfaz: Ejecutar manejador de evento, y a partir de ese momento, los comandos de cesta aplicados a la cesta local anteriormente creada no tenían efecto.

Por ejemplo, un mensaje en el subproceso del comando de instrucción Cesta: Procesar( CES ) no se mostraba.

Esto se debía a que la ejecución de un manejador de evento hacía como si fuese el inicial, con lo que al finalizar limpiaba las cestas.

A partir de la versión 7.15 se controla que no se limpien las cestas correspondientes al manejador de evento llamador, con lo que la ejecución de las cestas en éste será la correcta y podremos hacer uso de cestas en cualquier punto facilitando el desarrollo de nuestros manejadores. (VBM-3672).

Un formulario es lanzado en cuadro de diálogo en lugar de en vista si alguno de sus ascendientes es popup

A partir de la versión 7.15, los formularios que se muestren en cuadro de diálogo, cuando alguno de sus ascendientes es popup, lo harán en cuadro de diálogo, en modal, en vez de mostrarse en vista, debido a que esto último podría producir incidencias. De esta forma mejora la experiencia de usuario de nuestras aplicaciones. (VBM-3679).

Las modificaciones realizadas en formularios incluidos por herencia inversa de tablas de extensión se realizan en la ficha principal, evitando redundancias

Cuando modificábamos un campo de la ficha principal al aceptar daba error porque antes de modificar la ficha principal en su sitio normal la modificaba en el pre de fichas de extensión por cada subformulario de extensión ya que la ficha principal es para estos una ficha de extensión con modificación en pre.

Solucionada la incidencia, las modificaciones realizadas de esta forma se realizan únicamente en la ficha del formulario principal, con lo que se evita la redundancia y el error. (VBM-3681).

Implementados los edit de maestro sobre fichas de extensión en formularios sin origen

Trabajando en un formulario sin origen, cuando en una ficha de extensión incluíamos un edit de maestro, éste no era funcional.

A partir de la versión 7.15 se implementa el funcionamiento de los controles de edición de fichas de extensión en formularios sin origen, con lo que podremos hacer uso de estos controles en nuestras aplicaciones, ampliando la funcionalidad de las tabla de extensión. (VBM-3682).

Mejorada la indexación de índices complejos

Tenemos tres tablas: Clientes, Facturas e Líneas.

Tenemos un índice configurado como:

Tabla asociada: Líneas

Tabla de búsqueda: Líneas

Tabla para indexar en el índice: Clientes, campo Nombre del cliente.

Tenemos un cliente con código 1, con una factura con código 2, y al menos una línea.

Tenemos un cliente con código 2, que no tiene ningún plural, ni facturas como plural ni por tanto, ninguna línea.

Cuando modificamos el nombre del cliente con código 2 que no tiene plurales, y su código se corresponde con el código de una factura, en este caso la factura código 2 del cliente 1, no se modifica el registro.

A partir de la versión 7.15, solucionada esta incidencia, es posible indexar en este tipo de índices de forma normal, con lo que podremos aprovechar sin límites en nuestras aplicaciones la potencia de los índices complejos. (VBM-3689).

En una rejilla editable, en una columna editable que tiene vista de datos abierta si pulsamos la tecla Esc se cierra la edición pero se evita cerrar la vista de datos

En una rejilla editable, en una columna editable que tenía una vista de datos abierta si pulsábamos la tecla Esc se cerraba la vista de datos y también cerraba la edición en línea, en vez de quedar el foco en el campo en edición, como en los formularios.

Esto sucedía también con las teclas Enter y Return

A partir de la versión 7.15, cuando usemos cualquiera de estas teclas, se cerrará la vista de datos pero se mantiene la edición en la rejilla, con lo que mejoramos la usabilidad y la experiencia de usuario. (VBM-3690).

Velneo vDataClient V7 muestra todas las columnas correspondientes a los campos de la tabla, incluyendo punteros singulares o hermanos cuando se encuentran en las últimas posiciones de la lista de campos

Con Velneo vDataClient V7 cuando visualizábamos una tabla en la que los últimos campos por orden eran punteros singulares o hermanos, éstos no se mostraban en la rejilla, no pudiendo ver los valores correspondientes.

A partir de la versión 7.15 se ha mejorado la rejilla de edición de Velneo vDataClient V7, solucionando la incidencia, y permitiendo visualizar las columnas correspondientes a los campos punteros aunque estos se encuentren al final de la tabla, facilitando al administrador la gestión y mantenimiento de registros con esta herramienta. (VBM-3703).

estabilidad_ejecucion_image16

 

Mejora del comando de instrucción Cargar plurales para la resolución de instancias en tercer plano

La instrucción «Cargar plurales» en tercer plano devolvía los registros correspondientes a las posiciones de los plurales de la última instancia creada en instancias que reutilizan una instancia con la tabla maestra

Tenemos un proyecto de datos que contiene la tabla MAESTROS.

Tenemos otro proyecto de datos que hereda del anterior y contiene la tabla HISTORICOS.

La tabla HISTÓRICOS es plural de MAESTROS.

Instanciamos el proyecto de datos que contiene la tabla MAESTROS una única vez.

Instanciamos el proyecto de datos que contiene la tabla HISTORICOS dos veces, reutilizando en ambos caso la misma instancia del proyecto que contiene la tabla MAESTROS.

De esta forma, ambas instancias, compartirán la tabla MAESTROS, conteniendo los mismos maestros, pero los plurales serán diferentes para cada instancia.

Un proceso con origen ficha en MAESTROS ejecuta un proceso en tercer plano que usa el comando de instrucción Cargar plurales para devolver los correspondientes al maestro.

Si ejecutamos el proceso en la segunda instancia de datos (la última que hemos creado), nos devuelve los registros plurales correspondientes.

Si ejecutamos el proceso en la primera de las instancias de datos (la primera que hemos instanciado), nos devuelve los registros existentes en las posiciones correspondientes a los plurales de la instancia anterior. Incluso, si las posiciones no está ocupadas por plurales, devuelve posiciones vacías.

Si creamos más instancias de datos de plurales, heredando la instancia común de maestros, en todas las instancias anteriores se devolverán los plurales de acuerdo a las posiciones de los plurales en la última instancia creada.

A partir de la versión 7.15 se mejoran las funciones que usa el servidor para resolver la instancia que debe usar, incluyendo el soporte para este caso, lo que nos permitirá incrementar las estructuras de ejecución de nuestras instancias. (VBM-3692).

La reordenación de registros de una rejilla mantiene la multi-selección

En una rejilla con multiselección, cuando teníamos varios registros seleccionados, al reordenar el contenido de la rejilla, la multiselección mantenía sus posiciones, la selección no se movía con el registro y dejaba por tanto seleccionados otros registros.

A partir de la versión 7.15 se mejora el sistema de multiselección, permitiendo reordenar el contenido de la rejilla manteniendo la multiselección, mejorando la experiencia de usuario de las rejillas de nuestras aplicaciones y evitando confusiones. (VBM-3695).

estabilidad_ejecucion_image02

 

Mejora del cruce de componentes cuando una de las lista resultantes tiene un número mucho mayor de registros que el resto

Cuando en una búsqueda teníamos dos componentes que se cruzaban, y la lista resultante de la segunda componente tenía un número muchísimo mayor de elementos que la primera, se producía un error en la búsqueda que hacía que  Velneo vClient V7 se cerrara.

A partir de la versión 7.15 se mejora el funcionamiento de las búsquedas y la gestión de las listas en los cruces, con lo que se evita el problema y podremos despreocuparnos del tamaño de las listas resultantes de las componentes de las búsquedas. (VBM-3700).

En una rejilla con totales suma acumulada, con una columna que muestra un campo puntero a maestro, cuando hay registros que contienen códigos inexistentes en el maestro, la rejilla detecta que no existe el registro y evita recalcular constantemente totales

En una rejilla con totales en los que se muestra la suma acumulada de columna donde una columna mostraba un campo puntero a maestro, y había un registro contenía códigos inexistentes en el maestro, la rejilla recalculaba constamente los totales.

A partir de la versión 7.15, se evita esta circunstancia y la rejilla una vez realizado el cálculo de los totales no fuerza el recálculo ya que detecta que hay maestros inexistentes. (VBM-3705).

Se realiza el cierre de edición cuando editamos un registro en una rejilla editable y hacemos clic con el ratón en la zona vacía de registros de la rejilla

En una rejilla editable con pocos registros y que tuviera en la parte inferior espacio vacío (en blanco), bastaba editar un registro, mientras estábamos en edición hacíamos clic con el ratón en la zona vacía de la rejilla y veíamos como el registro en edición había perdido el foco y visualmente parece que se había cerrado la edición, pero la edición continuaba activa.

A partir de la versión 7.15 se mejora la rejilla editable, con nuevas funcionalidades y entre ellas veremos que cuando pulsemos en la zona vacía de registros se finalizará la edición, y se dispararán las señales correspondientes. Esto mejora la experiencia de usuario de las rejillas editables de nuestras aplicaciones y evita confusiones al usuario final. (VBM-3706).

La rejilla editable únicamente emite la señal de pierde foco cuando se pierde el foco y evitando su emisión cuando se entra en edición

En una rejilla editable, en el momento de entrar en edición , se emitía la señal de pérdida de foco, ya que realmente la rejilla perdía el foco.

A partir de la versión 7.15, se evita la emisión de la señal cada vez que entra en edición, emitiéndose únicamente cuando el control rejilla pierde el foco. Esto facilita la gestión de la pérdida de foco de la rejilla y el desarrollo de funcionalidades en que requieran del uso de esta señal. (VBM-3710).

La validación tomará el valor 0 como nulo en el caso de controles de edición de maestro numérico permitiendo continuar al siguiente control

La validación no funciona cuando un control de edición de maestro cuyo contenido es el campo código de un maestro y no apunta a ningún registro no permitiendo continuar al siguiente control

En un control de edición de maestro en que editábamos el maestro de una ficha por el campo código del maestro (Contenido: #MAESTRO o #MAESTRO.ID) se mostraba un 0 cuando no se apuntaba a ningún registro, pero la validación no lo tomaba como nulo y no permitía continuar al siguiente control.

A partir de la versión 7.15 el valor 0 será tomado como nulo en el caso de controles de edición de maestro numéricos (como en un enlace a maestro), de tal forma que el funcionamiento sea homogéneo, dando igual que contenga 0 o esté vacío para ser considerado como nulo y facilitando al usuario final la navegación por los controles del formulario. (VBM-3728).

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

DESCARGAR VELNEO

Deja un comentario

Esta web utiliza cookies. Si continúa navegando acepta dichas cookies y nuestra política de cookies. Gracias. ACEPTAR

Aviso de cookies