Novedad Velneo 21: Servicio web para crear vClient personalizado

Con la nueva versión Velneo 21 aparece un nuevo servicio web que permite crear, de forma muy sencilla, un vClient personalizado con vuestra imagen corporativa o la de vuestros clientes. vClient ahora es tuyo.

Características principales:

  • Sencillo, rápido y flexible
  • Windows 64
  • Disponible para suscriptores de Velneo nivel 4

En el seminario online de presentación de las novedades, Domi Fernández nos explicó como usar este nuevo servicio:

Podéis conocer la lista de novedades más destacadas de esta versión en la página de novedades.

Este artículo Novedad Velneo 21: Servicio web para crear vClient personalizado es original de Velneo.

Controla las rejillas como nunca

Las nuevas funciones incorporadas en la clase VGridListDataView nos permiten controlar como nunca la visualización de las filas, de las columnas, del grid, la edición sobre la rejilla e incluso leer directamente la información visualizada en las celdas de la rejilla.

Rejillas en V7

A continuación se detallan las nuevas funciones de la clase VGridListDataView:

Controla las filas
Cambia el alto de cada fila independientemente con la función resizeRowToContents() o de todas las filas de la rejilla en función de su contenido con la función resizeRowsToContents(). Además puedes ocultar filas de la rejilla con la función setRowVisible() y conocer si una fila está o no oculta con la función isRowHidden().

Controla las columnas
Analiza cuantas columnas hay en la rejilla con columnCount() o cuantas columnas están visibles en cada momento con visibleColumnCount(). Interroga la rejilla por el ancho en píxeles de una columna con columnWidth() y cambia el ancho de cada columna a un tamaño fijo con setColumnWidth() o de todas las columnas con resizeColumnToContents().

Controla la edición
Ahora puedes de forma programada editar una fila o una celda concreta determinada por una fila y columna, o una fila y el identificador de una columna con la nueva función editItem().

Controla el grid
Ahora puedes dinámicamente saber si el grid está visible con showGrid() y ocultarlo o hacerlo visible con la función setShowGrid().

Controla la ordenación
Activa o desactiva que el usuario final pueda ordenar los registros de la rejilla haciendo clic en la cabecera de columna con la función setSortingEnabled(), e interroga a la rejilla para saber si el usuario puede o no hacer ordenación con la función isSortingEnabled().

Controla los datos
Aunque las rejillas muestran listas de registros de una tabla de origen en sus celdas se pueden visualizar datos de tablas maestras, fórmulas, variables, etc. Ahora tienes la posibilidad de saber que tipo de información se visualiza en cada columna dataType() y obtener el dato visualizado en cada celda con data() y con dataImage() en caso de imágenes o iconos.

Sin duda otro gran paso que ayuda a crear apps de gestión de manera más sencilla y agradable.

The post Controla las rejillas como nunca appeared first on Velneo V7.

Velneo V7 Velocidad y Estabilidad

Velneo V7 7.15, hasta tres veces más rápido

Hemos trabajado intensamente en todas las áreas de la empresa mejorando nuestros productos y servicios, para que cada día Velneo sea más veloz y estable para desarrollar aplicaciones empresariales. Nuestro objetivo es conseguir que los programadores disfruten desarrollando aplicaciones empresariales de manera rápida y fácil. Queremos dar las gracias a la comunidad por la participación y la ayuda que nos presta cada día, esperamos que disfrutéis de esta nueva iteración.

comparativa velocidad.001 10.49.54

Velocidad

La velocidad es algo fundamental para las aplicaciones, en la nueva versión 7.15 hemos incluido una serie de mejoras que implican una mejor integración con los sistemas operativos Microsoft Windows. Esta mejor integración se traduce en una mayor velocidad y rendimiento de todos los componentes de Velneo V7 en Windows y por tanto de nuestras aplicaciones. Se ha mejorado la velocidad en aspectos como el alta y baja de registros, escritura de ficheros, regeneración de índices, regeneración de área de datos, entre otros.

En procesos críticos, como son la regeneración de índices u otras operaciones en tabla, se han obtenido mejoras que triplican la velocidad de versiones anteriores. Las aplicaciones serán mucho más rápidas, y la mejora será más notable cuando se trabaje con tablas con gran número de registros y muchos índices.

.

Estabilidad

Uno de nuestros principales objetivos con la plataforma es mantener la estabilidad. Cada día se ponen en producción nuevas instalaciones desarrolladas en Velneo V7, por ello debemos poner foco en mantener y mejorar la estabilidad lograda hasta el momento. Para ello hemos trabajado en +100 incidencias que mejoran la estabilidad y usabilidad de las aplicaciones.

.

Personalización

Gracias a la potencia y mejoras del nuevo API hemos conseguido que se pueda personalizar la interfaz de las aplicaciones en tiempo real. Esta funcionalidad aumentará nuestra velocidad de implementación en los clientes. Sin tocar nuestro código podremos introducir personalizaciones sorprendentes a nuestros clientes para cubrir sus necesidades. No te pierdas el vídeo de Jesús Arboleya mostrando un caso en tiempo real.

.

Encontrarás muchas más novedades en Velneo V7 7.15, entre otras:

  • Objeto rejilla renovado

  • Nuevo control Data Catcher Edit

  • Uso TCP en el cloud

  • Localizador sobre índices complejos

  • Login por Google en velneo.es

  • Explorador de archivos Cloud

  • Importantes novedades en el API de Velneo para Javascript

  • Instalación de Open Apps desde vDevelop

  • y muchas más novedades…

Durante las próximas semanas iremos publicando posts en el blog de velneo.es explicando en profundidad cada una de las novedades introducidas en esta versión Velneo V7 7.15. Mediante estos artículos os podremos mostrar la dimensión de cada una de las novedades.

Puedes leer el listado completo de post de novedades en el siguiente archivo PDF.

En la página de descargas están disponibles  los distintos componentes de Velneo V7 para los diferentes sistemas operativos. En esta versión 7.15, la descarga para el componente Velneo vWebclient V7 se podrá realizar mediante una consulta a soporte donde se nos ofrecerá el enlace a la descarga del componente como se explica en el fichero completo de novedades.

La entrada Velneo V7 Velocidad y Estabilidad aparece primero en Velneo V7.

Deshabilitar controles de formulario con el API de Velneo V7

VITAMINA – 8

En cualquier aplicación empresarial donde se maneja información y permisos de lectura y escritura de la misma es necesario gestionar de forma sencilla los controles de los formularios y su estado de edición, es decir que estén habilitados o deshabilitados según los criterios de configuración, usuario o circunstancias que se produzcan durante la ejecución. En esta vitamina vamos a aprender a deshabilitar controles de formulario con el API de Velneo V7.

La solución propuesta en esta vitamina permite con una sola instrucción habilitar o deshabilitar todos los controles de un formulario, teniendo en cuenta aspectos importantes como que cuando deshabilitamos los controles no lo haremos a las vistas de datos (rejillas, casilleros, árboles, etc.) pues muestran información por la que debemos dejar al usuario moverse y cuyo control de permisos de edición se hará en el propio objeto.

Para que el usuario puede consultar toda la información del formulario tampoco debemos deshabilitar los separadores de pestañas (subformularios), ni las pilas ni cajas de formularios, tampoco los splitter ni las cajas de grupo. Si quieres cambiar alguno de estos criterios sólo tienes que revisar el array de tiposEnabled de la función deshabilitarControles() añadiendo o quitando los que te interesen. En la documentación de la clase VMainWindow encontrarás el enum de tipos de controles.

Deshabilitar controles de formulario con el API de Velneo V7

Deshabilitar todos los controles con una instrucción Velneo V7

Para implementar esta vitamina sólo tienes que hacer lo siguiente. Añade el código de las funciones deshabilitaControles() y habilitaControles() en un fichero JavaScript en el directorio de scripts. Es conveniente que tengas un repositorio de funciones JavaScript en el proyecto de datos o aplicación más bajo en el árbol de herencia, para que pueda ser usado desde todos los formularios de tus aplicaciones.

En cada formulario puedes ejecutar el siguiente código en el manejador de evento Post-inicializado o en el punto de ejecución donde te interese ya que al ejecutar la función deshabilitaControles( formulario ) estarás haciéndolo con una sola instrucción a todos los controles del formulario sean del tipo que sean.

#include "3b3uk7ol.vca/js/controlesFormulario.js"

// ----------------------------------------------------------------------
// Deshabilita los controles del formulario
// ----------------------------------------
var formulario = theRoot.dataView();
deshabilitaControles( formulario );

// Se habilita individualmente el botón Habilitar controles
var botonHabilita = formulario.control( "BTN_HAB_CTL" );
botonHabilita.enabled = true;

Recuerda que la primera línea con el #include debes sustituirla por la del fichero JavaScript que hayas añadido en tu repositorio con las funciones deshabilitaControles() y habilitaControles(). Esto puedes hacerlo usando el botón “#i” Asistente: #include otro JavaScript de la toolbar del editor de scripts.

En ese manejador de evento, tras deshabilitar todos los controles, habilito el botón habilitar controles. Es decir, que tras ejecutar ese función genérica siempre podemos habilitar individualmente los controles que nos interesen.

Para habilitar los controles de un formulario, tan sólo tienes que ejecutar este código.

#include "3b3uk7ol.vca/js/controlesFormulario.js"

// ----------------------------------------------------------------------
// Habilita los controles del formulario
// -------------------------------------
var formulario = theRoot.dataView();
habilitaControles( formulario );

Formulario cnotroles habilitados

A continuación está el código de las funciones deshabilitaControles() y habilitaControles() que debes añadir en un fichero JavaScript del directorio de scripts de tu proyecto de datos o aplicación.

// --------------------------------------------------------------------------------
// Deshabilita los controles del formulario
//
// Parámetros:
//     - formulario: Objeto de la clase VFormDataView con el formulario a procesar
// --------------------------------------------------------------------------------
var deshabilitaControles = function ( formulario )
{
    if ( formulario )
    {       
        var tiposEnabled = [ VMainWindow.WTypeDataView, VMainWindow.WTypeMdiView, 
                             VMainWindow.WTypeWebView, VMainWindow.WTypeTabWidget,
                             VMainWindow.WTypeStackedWidget, VMainWindow.WTypeToolBox,
                             VMainWindow.WTypeSplitter, VMainWindow.WTypeGroupBox ];

        var numControles = formulario.controlCount();
        for ( var numControl = 0; numControl < numControles ; numControl++ )
        {
            // Si el control es del tipo de adecuado se deshabilita
            var control = formulario.control( numControl );
            if ( control )
            {
                tipo = theMainWindow.widgetType( control );
                if ( tiposEnabled.indexOf( tipo ) === -1 )
                {
                    control.enabled = false;
                };
            };
        };
    };
};

// --------------------------------------------------------------------------------
// Habilita los controles del formulario
//
// Parámetros:
//     - formulario: Objeto de la clase VFormDataView con el formulario a procesar
// --------------------------------------------------------------------------------
var habilitaControles = function ( formulario )
{
    if ( formulario )
    {    
        var numControles = formulario.controlCount();
        for ( var numControl = 0; numControl < numControles; numControl ++ )
        {
            var control = formulario.control( numControl );
            
            if ( control )
            {
                control.enabled = false;
            };
        };
    };
};

Funciones configurales o personalizadas

Estas funciones que hemos visto son genéricas, pero a partir de ellas podemos crear nuestras propias funciones que habiliten o deshabiliten controles en base a una configuración que puede estar guardada en una tabla o a criterios personalizados en base al usuario, sus grupos de usuario, etc.

Es decir, que la función puede leer información de los identificadores de controles a deshabilitar o habilitar en un momento dado y aplicarlos de forma automática. Por este motivo es tan importante que seamos estrictos a la hora de poner los identificadores de los controles en los formularios de nuestras aplicaciones.

Ventajas y desventajas del API de Velneo V7 respecto al CSS

Esta vitamina demuestra que deshabilitar y habilitar opciones con el API de Velneo V7 y JavaScript es muy potente. En la próxima vitamina 9 veremos lo sencillo que resulta deshabilitar y habilitar controles mediante CSS. A continuación identifico algunas ventajas de hacerlo mediante el API de Velneo V7 y JavaScript o con CSS:

Ventajas de hacerlo con el API de Velneo V7 JavaScript:

  • Muy configurable y personalizable mediante programación.
  • Muy potente al permitir aplicarlo a todas las propiedades y funciones.
  • Código muy reutilizable y de aplicación directa, no en cascada.

Ventajas de hacerlo con CSS:

  • Más sencillo de aplicar.
  • Se aplica en cascada a todos los formularios que se abran desde aquel en el que se haya aplicado el estilo.
  • Permite individualizar el estilo de múltiples controles a la vez

 

Si te ha gustado este artículo, por favor compártelo con los tuyos en las redes sociales

The post Deshabilitar controles de formulario con el API de Velneo V7 appeared first on Lógica mente Velneo V7.

Cambios y mejoras en los foros de Velneo

Se está finalizando la segunda fase de cambios y mejores que se aplicarán a los foros (bbPRess) de velneo.es.

En la primera fase, el objetivo consistió en actualizar la versión base de los foros bbPRess (1.0.X) a la versión más actual (2.0.X), este cambio no resultó sencillo, debido a que parte de la arquitectura (BBDD) del sistema había sido modificado, por lo que fue necesario realizar una exportación desde la primera versión, para luego importar el archivo en la versión actualizada. Para todos los que hayáis sufrido alguna actualización, os podéis hacer una idea.

En paralelo a este cambio era necesario, como en ocasiones anteriores (también tras actualizaciones menores), repasar y ajustar el theme personalizado que utilizamos para los foros bbPress. Esto significa que, tras cada actualización de los foros, había que revisar el theme que nosotros mismo habíamos creado y nos encargábamos de mantener debido a que, si en la nueva versión se había modificado el método de invocar alguna de las funciones o quizás alguna función de WP (usadas también en las plantillas) se había quedado desfasada, debíamos reemplazar aquellos métodos para asegurar un correcto funcionamiento e integración del sistema de plantillas tanto con bbPress como con WordPress.

Personalización Vs. Estandarización

Este es seguramente uno de los debates más clásicos dentro del mundo del desarrollo de software. ¿Creamos nuestro propio sistema personalizado o utilizamos una plantilla o software estándar que cubra nuestras necesidades?. Cada opción tiene sus pros y sus contras.
Continue reading "Cambios y mejoras en los foros de Velneo"