En la nueva versión de Velneo V7 7.15 encontraremos nuevas clases y funciones en el API de Velneo para scripts, con las que podremos lanzar procesos, disparar objetos, etc., y que nos permiten ampliar la funcionalidad de nuestras aplicaciones.
A continuación tenemos un detalle de las novedades más importantes que encontrarás en el API de Velneo y que te permitirán disfrutar de la velocidad y estabilidad de esta nueva versión:
Documentación mejorada
Hemos mejorado la documentación del API, incluyendo un árbol de las clases que te ayudarán a conocer la relaciones entre las clases, esto te ayuda a la hora de saber que funciones y propiedades tienes disponibles para ejecutar desde una clase, ya que se pueden ejecutar tanto las suyas propias como todas las de las clases heredadas. Hemos incluido también un enlace por si quieres ver la lista de clases por orden alfabético. También hemos incluido ejemplos en todas las nuevas clases y funciones incorporadas. Esta mejoras están disponibles tanto desde la ayuda online de vDevelop como desde el manual de la página web.
Nueva clase VObjectInstance
Esta nueva clase representa una instancia de un objeto en ejecución, como por ejemplo una búsqueda (VQuery) o un proceso (VProcess). Esta clase implementa las funciones comunes a todos los objetos como es el uso de las variables locales.Las funciones de esta clase se usan desde los objetos creados por las clases que la heredan VDataViewDialog, VFinder, VProcess, y VQuery, en los ejemplos de estas clases podemos ver el uso de las funciones de VObjectInstance.El API de Velneo V7 y los procesos JavaScript son ahora mucho más potentes y flexibles a la hora de integrarse con el resto de procesos y objetos de la aplicación. (VBM-3716)
Nueva clase VDataViewDialog
La clase VDataViewDialog representa un objeto en ejecución de ficha o lista con interfaz. Nos permite ejecutar objetos de lista o ficha como rejillas, formularios, casilleros, etc. Construimos un objeto VDataViewDialog pasándole el objeto VRoot en curso y le indicamos el objeto a ejecutar con la función setDataView.Una vez inicializado le pasamos un registro (setRegister) o una lista de registros (setRegisterList) en función del tipo de entrada del objeto y también el contenido a las variables locales del proceso con setVarLocal (si lo requiere) y la ejecutamos con la función exec.El registro que se pasa al objeto si exec devuelve true contendrá la información actualizada tras haber sido procesado en el objeto. No se genera un nuevo registro de salida (result), sino que se trabaja sobre el mismo VRegister o VRegisterList de entrada.Esta clase nos abre la posibilidad de interactuar con objetos de interfaz de vista de datos de ficha y lista y gestionarlos directamente desde nuestro proceso JavaScript. Esto supone una mayor sencillez en nuestra programación a la vez que nos otorga una mayor potencia a la hora de crear soluciones más flexibles. (VBM-3722).
Nueva clase VFinder
La clase VFinder representa un localizador en ejecución. Nos permite ejecutar el objeto de proyecto localizar. Construimos un objeto VFinder pasándole el objeto VRoot en curso y le indicamos el localizador a ejecutar con la función setFinder. Tras ejecutar la función exec podemos recoger la ficha localizada con la función result, que nos devuelve un objeto de la clase VRegister con el cual podemos operar. (VBM-3712).
Nueva clase VProcess
Hasta esta versión era posible ejecutar procesos JavaScript lanzados desde código V7 pasándole parámetros a través de variables locales. Ahora ya es posible lanzar procesos V7 y JavaScript desde un proceso JavaScript pasando parámetros a través de variables locales, al igual que hacemos en V7 con disparar objeto contra un manejador de objeto. Además, esta clase nos permite ejecutar los procesos en 1º, 2º y 3º plano lo que facilita la optimización de nuestras aplicaciones para conseguir mayor velocidad de ejecución.La clase VProcess representa un proceso en ejecución. Nos permite ejecutar procesos y recoger el resultado.Esta nueva clase nos permitirá ejecutar procesos desde procesos javascript de forma análoga a como hacemos con los comandos del grupo de Objeto, de Velneo V7. De esta forma podremos encadenar procesos javascript de forma sencilla, optimizando y reutilizando nuestro código. (VBM-3715).
Clase VQuery revisada
Aunque la clase VQuery ya existía, se ha revisado para que herede de la clase VObjectInstance y tenga un funcionamiento homogéneo con las nuevas clases que la heredan. Este cambio no afecta al código JavaScript existente que use la clase, ya que las funciones se siguen llamando igual.
Nueva clases para controles de tipo browser
En esta versión hemos añadido nuevas clases que nos permite gestionar los controles de edición de tipo browser, que son aquellos a los que les hemos declarado un menú de botón. Las nuevas clases son:
- VBoundFieldEditBrowser : Control de edición de campo enlazado a tabla maestra con botón de menú. Esta clase implementa la misma funcionalidad que la clase VBoundFieldEdit más las propiedades y funciones heredadas de la clase VAbstractBrowser.
- VDataCatcherEditBrowser : Control de edición data catcher edit con botón de menú. Esta clase implementa la misma funcionalidad que la clase VDataCatcherEdit más las propiedades y funciones heredadas de la clase VAbstractBrowser.
- VDateEditBrowser : Control de edición de fecha con doble botón arriba/abajo y botón de menú. Esta clase implementa la misma funcionalidad que la clase VDateEdit más las propiedades y funciones heredadas de la clase VAbstractBrowser.
- VDateTimeEditBrowser : Control de edición de fecha/hora con doble botón arriba/abajo y botón de menú. Esta clase implementa la misma funcionalidad que la clase VDateTmeEdit más las propiedades y funciones heredadas de la clase VAbstractBrowser.
- VNumberSpinBoxBrowser : Control de edición de números con doble boton arriba/abajo y botón de menú. Esta clase implementa la misma funcionalidad que la clase VNumberSpinBox más las propiedades y funciones heredadas de la clase VAbstractBrowser.
- VTimeEditBrowser : Control de edición de hora/minutos/segundos con doble botón arriba/abajo y botón de menú. Esta clase implementa la misma funcionalidad que la clase VTimeEdit más las propiedades y funciones heredadas de la clase VAbstractBrowser.
Mejorado el API de controles browser para hacer funcionales todas sus propiedades y funciones
Hemos mejorado el API para que sean funcionales todas las propiedades y funciones de los controles tipo browser, con botón de menú. (VBM-3704, VBM-3711).Los clases mejoradas han sido:
- VBoundFieldEditBrowser
- VCWebView
- VDataCatcherEditBrowser
- VDateEditBrowser
- VDateTimeEditBrowser
- VImageEdit
- VLineEditBrowser
- VNumberSpinBoxBrowser
- VTextEdit
- VTimeEditBrowser
Nueva función parentDataView() de la clase VAbstractDataView
Hasta ahora podíamos acceder a los objetos en cascada navegando por ellos de arriba hacia abajo, es decir, desde el principal o padre hacia sus hijos. También disponemos de la función mainForm() de la clase VFormDataView que nos permitía situarnos en el objeto padre o principal de la cadena de objetos amalgamos donde nos encontramos. Pero con esta nueva función tenemos ya la posibilidad de navegar hacia arriba desde el objeto en el que estamos hacia su padre y así recursivamente hasta llegar al padre u objeto principal.Si nuestro objeto no se encuentra amalgamado dentro de otro objeto esta función devolverá null.Si nuestro objeto está amalgamado esta función devolverá un objeto de la clase VAbstractDataView que representa al objeto dentro del que se encuentra amalgamado.Esta función puede aplicarse recursivamente para movernos hacia arriba en la cadena de objetos amalgamados hasta encontrar un null que nos indique que ya estamos en el objeto de nivel superior de la cadena.
Nueva función deleteRegisterWhithoutDeupdating() de la clase VRegister
Gracias a esta nueva función ahora podemos eliminar un registro con y sin desactualización. (VBM-3576).
Implementación de la función root() en la clase VAbstractDataView
Se implementa la función root() en la clase VAbstractDataView que nos permite obtener un objeto de la clase VRoot correspondiente al objeto en ejecución.A partir de la versión 7.15 podremos usarlo en nuestros procesos javascript de forma análoga a como hacíamos a cuando obteníamos el root en la clase VMdiView, ampliando las funcionalidades de nuestra aplicación. (VBM-3611).
Mejorada la función control() de la clase VFormDataView
La función control() mejorada de la clase VFormDataView ahora es capaz de devolver el control incluso cuando tipo un botón de menú (browser). (VBM-3701).
Optimizada la gestión de memoria de la clase VImage
Hemos optimizado el funcionamiento de la clase VImage. Podrás trabajar con múltiples objetos imagen sin que esto afecte al rendimiento y consumo de memoria del equipo. (VBM-3680).
Implementada la función staticTableItemImage() de la clase VApp
Hemos resuelto una incidencia que producía que la función staticTableItemImage() de la clase VApp se mostrase el error:Error en script: TypeError: cannot call staticTableImage():Unknown return type `const QObject*' (register de the type with qScriptRegistermetaType()) (VBM-3671).