Prueba Velneo Gratis

Te ofrecemos todo el poder de Velneo durante 1 mes para desarrollar la aplicación que tu empresa necesita.

Saber más
Thank you! Check your email for confirmation.

Listado de novedades Velneo V7 7.10

¡Velneo V7 incorpora JavaScript: 15 clases y 500 funciones nuevas!

Se abre la caja de pandora a un nuevo mundo de posibilidades

Nueva API de Velneo: 15 nuevas clases integradas en QML, procesos y fórmulas JavaScript

En V7 se han añadido un conjunto de clases que aportan objetos y funciones adicionales para obtener una integración completa de otros lenguajes de programación en la plataforma de desarrollo de aplicaciones empresariales Velneo V7.

La herencia inversa al poder

Una de las grandes virtudes de vJavaScript es la abstracción que permite que un script pueda ser ejecutado desde múltiples procesos. Unido a esto nos encontramos que cualquier proceso, fórmula o QML tienen acceso al objeto theApp de la clase VApp. Este objeto representa a la aplicación por lo que en el momento que ejecutamos una aplicación tendremos acceso al proyecto de aplicación en el que arranca y a todos sus proyectos heredados. Es decir, a todos los proyectos, objetos y tablas de nuestra aplicación.Por ejemplo, gracias a esta característica si ejecutamos vBase tendremos acceso a toda la información de todos los proyectos de vBase. Si ejecutamos vAgenda que hereda vBase tendremos acceso a toda la información de todos los proyectos de vAgenda y también de vBase.Esto nos permite en soluciones que están siendo heredadas por otras incluir scripts que ejecuten acciones o procesos que no conocen.

Nueva API de Velneo: Casi 500 nuevas funciones para utilizar Velneo V7 con otros lenguajes

Clases de info de V7

VProjectInfoVObjectInfoVTableInfo

Clases de ventana

VMainWindowVMdiView

Clases de entorno de ejecución

VAppVRoot

Clases de datos

VRegisterVRegisterListVQuery

Clases de disco

VDirVFileVFileInfoVTextFileVXmlWriter

DescargaManual de Scripts Velneo V7 7.10

Funciones

Funciones globales

Directorio de scripts

Cada proyecto de Velneo V7 contiene un directorio donde podemos crear una estructura de carpetas y guardar en ellas los ficheros de scripts: QML, JavaScript, ... y sus ficheros auxiliares.Al ejecutar una aplicación con vClient, vWebClient o vDataClient, se cargan tambien los directorios de scripts de cada proyecto de la aplicación.

Scripts reutilizables

Un mismo fichero QML o JavaScript se puede usar desde distintos objetos V7. Además, hay distintos tipos de objetos V7 que los usan como procesos, lista QML y formulario QML. Un mismo fichero QML o JavaScript puede ser usado en objetos con distintas entradas y salidas, tabla y/o ficha/lista, controlando el programador mediante las funciones API de los objetos de entrada/salida que nos da vJavaScript. Tambien se puede asumir que un fichero QML o JavaScript tiene una tabla de entrada y/o salida determinadas, con el nivel de abstraccion deseado en cada fichero script.Para introducir en un objeto V7 la propiedad “Fichero script” en el edit disponemos de un botón que nos presenta un árbol con los directorios de scripts del proyecto en curso y de sus proyectos heredados.Velneo V7 incorpora también editores de codigo fuente para los distintos lenguajes soportados.Se puede usar “import” en los ficheros fuente QML para importar otros ficheros QML, JavaScript o carpetas enteras contenidas en los directorios scripts del proyecto y heredados.

Editor de scripts

En el componente de edición vDevelop se ha integrado un editor de scripts para facilitar la edición de los ficheros de script que se almacenan en el directorio de scripts. El editor contempla las siguientes funcionalidades:

  • Coloreado de código
  • Autocompletar para clases y objetos
  • Autocompletar para funciones, señales y métodos
  • Autocompletar para enums de parámetros de funciones
  • Ayuda con los parámetros de funciones
  • Configuración del editor
  • Verificación de sintaxis de script correcta. Es recomendable verificar antes de ejecutar
  • Botones para copiar, cortar y pegar
  • Botones para deshacer y rehacer
  • Combo de selección manual del zoom
  • Botones para aumentar o disminuir el zoom
  • Botones para imprimir el script o guardarlo en disco en formato PDF
  • Toolbar de búsqueda de textos en script editado
  • Toolbar de búsqueda de textos en todos los scripts

Procesos JavaScript

Se ha añadido una nueva propiedad “Lenguaje” a los procesos. Las opciones disponibles son: V7 y JavaScript.Los procesos con lenguaje JavaScript tienen las mismas propiedades que los procesos V7 salvo que en lugar del árbol de instrucciones disponemos de un fichero de texto, en el cual escribiremos nuestro programa JavaScript.Según el tipo de Entrada y el tipo de Salida dispondremos de distintos objetos: Entrada

  • Ficha: theRegisterIn
  • Lista: theRegisterListIn

Salida

  • Ficha: theRegisterOut
  • Lista: theRegisterListOut

Nota informativa: Los procesos JavaScript son totalmente operativos en primer plano, sin embargo en tercer plano no tienen aún contempladas ciertas opciones. Recomendamos tener precaución en el uso de procesos JavaScript en tercer plano (servidor). Es conveniente que la ejecución de los procesos JavaScript en el servidor sea corta, inferior a 10 minutos.

Fórmulas JavaScript

El lenguaje JavaScript ha sido implementado en las fórmulas de Velneo V7. Cualquier propiedad tipo fórmula de cualquier objeto puede ahora ser escrita en V7 o JavaScript, independientemente del lenguaje de las otras fórmulas. Lo mismo sucede con los campos tipo fórmula dinámica que ahora pueden escribirse en V7 o JavaScript.En el nuevo editor de fórmulas, más simple y eficaz, disponemos de un combobox, situado en la toolbar superior, donde podemos seleccionar el lenguaje deseado: V7 o JavaScript. Los asistentes como “Insertar campo” tienen en cuenta el lenguaje seleccionado e insertan el texto con la sintaxis adecuada.

Por ejemplo, al insertar el campo NAME con lenguaje V7 será:[code lang="js"]#NAME[/code]y con JavaScript será:[code lang="js"]vreg.fieldToString(“NAME”)[/code]En el ejemplo se puede observar que en JavaScript ya elige el asistente automáticamente la función vreg.fieldToString de la clase VRegister según el tipo de campo, decimales, signo, etc.Las fórmulas JavaScript tienen conectado un objeto “theRegister” de la clase VRegister a traves del cual se tiene acceso al contenido de los campos, variables locales, globales y de sistema. Solo está disponible el juego de funciones de lectura, no el de modificación como en procesos, pués el objetivo de las fórmulas es obtener un valor. También tienen conectado el objeto theApp, la aplicación.

Regenera el área de datos y los índices de todas las tablas con 5 líneas

Un claro ejemplo de la potencia de vJavaScript y de la herencia inversa implícita es que con este sencillo script podemos regenerar el área de datos y los índices de todas las tablas. No importa si este script está en el proyecto superior o en el de nivel más bajo del árbol de herencia pues el objeto theApp tiene visibilidad completa a todas las soluciones, proyectos y objetos.[code lang="js"]////////////////////////////////////////////////////////////// Ejemplo de regeneración del área de datos e índices de todas las tablasvar mainProject = theApp.mainProjectInfo();for( var nIndex=0; nIndex < mainProject.allTableCount(); nIndex++ )var table = mainProject.allTableInfo( nIndex ).idRef();theApp.regenDataArea( table, true );theApp.regenIndexes( table, true );[/code]

Exporta tus datos a XML

En el siguiente script verás un ejemplo sencillo en el que se lanza una búsqueda y se exportan a XML todos los registros encontrados. En este caso tanto la búsqueda como los campos que se exportan están concretados en el script, sin embargo, en el catálogo de Open Apps encontrarás ejemplos más avanzados donde se exportan todos los campos de una tabla a JSON, XML o CSV.[code lang="js"]////////////////////////////////////////////////////////////// Exportar una lista de registros a xml// Se importa la clase para usar sus funcionesimportClass( "VQuery" );importClass( "VXmlWriter" );// Se crea el objeto búsquedavar bus = new VQuery( theRoot );bus.setQuery( "vbaseUsuariosApp/USR_GRP_NOM" );// Se ejecuta la búsquedaif ( bus.exec() ){ // Se crea el objeto XML con la lista de registros de entrada var xml = new VXmlWriter( bus.result() ); // Se fija el tipo de documento xml.setDocType( "vXML" ); // Se añade como etiqueta de documento, el nombre de la tabla xml.addInitialTag( "USR_GRP" ); // Se añade la etiqueta de registro xml.setRowTag( "row" ); // Se añaden los campos de la tabla xml.addField( "Código", "ID" ); xml.addField( "Nombre", "NAME" ); xml.addField( "Usuario alta", "ALT_USR.NAME" ); // Grabar el fichero en disco xml.writeFile( theApp.rootPath() + "/USR_GRP" + ".xml" );}// Se muestra un mensaje confirmando la exportaciónalert( "Se han exportado satisfactoriamente " + bus.result().size() + " grupos de usuarios", "Información" );[/code]

Gestiona las pestañas abiertas de tu aplicación

Un ejemplo de la potencia de vJavaScript es este sencillo script que recibe 2 parámetros: el título de la pestaña y la acción a ejecutar. Con esa información analiza las pestañas abiertas, si ya está abierta una vez se posiciona y en caso contrario lanza la acción para abrir la pestaña. Los procesos JavaScript tienen acceso a sus variables locales y pueden recibir parámetros a través de dichas variables locales siendo llamados con el comando de instrucción "Disparar objeto".[code lang="js"]////////////////////////////////////////////////////////////// Busca una vista con el título y si la encuentra la habilita// Si no la encuentra ejecuta la acción// El proceso recibe 2 parámetros a través de las variables locales// TITULO = Título de la pestaña// ACCION = Acción a ejecutarvar numVistas = theMainWindow.viewsCount();var ejecutar = true;for ( i=0; i<numVistas + 1; i++ ){ var vista = theMainWindow.currentView() if ( vista.title() == theRoot.varToString( "TITULO" ) ) { ejecutar = false; } else { theMainWindow.nextView(); }}// Si no se ha encontrado se lanza la acción para abrir la vista y se retorna true (para seguir)if ( ejecutar == true ){ theMainWindow.runAction( theRoot.varToString( "ACCION" ) );}[/code]

Muchos ejemplos en la documentación y en el catálogo de Open Apps

La documentación de script en el manual de vDevelop incluye interesantes ejemplos que puedes utilizar en tus aplicaciones. Además en el catálogo de Open Apps encontrarás varias aplicaciones que recopilan scripts con múltiples funcionalidades reutilizables.

¿Está ya finalizada la implementación de los scripts en Velneo V7?

No, con la versión 7.10 lanzamos la segunda fase de integración de scripts. Seguimos trabajando en nuevas capas de integración que potencien aún más las posibilidades de este API en futuras versiones.

Novedades en QML

Clases de JavaScript integradas

Ya es posible desde los scripts de QML hacer uso de la mayoría de las funciones de las diferentes clases de vJavaScript. Estas clases nos darán acceso a los objetos y funciones de:

  • La aplicación (theApp)
  • El procesador del objeto (theRoot)
  • El marco principal (theMainWindow)
  • La vista (MdiView)
  • La información del proyectos y sus objetos
  • Las funciones de registro (VRegister)
  • Las funciones de listas de registros (VRegisterList)

Para la próxima fase de integración queda pendiente la activación del uso de funciones para la construcción de objetos nuevos, "new", que se utiliza en VDir, VFile, VTextFile, VQuery, VRegister, VRegisterList y VXmlWriter.

Cambio de nomenclaturas de palabras clave

A partir de esta versión y para unificar criterios y compatibilidad con vJavaScript las palabras reservadas utilizadas en los scripts de QML pasan a ser:[code lang="js" title="Versión 7.9"]objectName: "VListView"model: VListModelVApp.VRoot.VRegisterIn.VRegisterOut.VRegisterListIn.VRegisterListOut.[/code][code lang="js" title="Versión 7.10"]objectName: "theListView"model: theListModeltheApp.theRoot.theRegisterIn.theRegisterOut.theRegisterListIn.theRegisterListOut.[/code]Más información en el artículo "Información importante a tener en cuenta antes de instalar la versión 7.10".

Interfaz

Personaliza el formulario de login a tu gusto

Ya puedes configurar a tu gusto el diseño del cuadro de diálogo de datos de entrada para acceder a las aplicaciones con los componentes vClient y vWebClient.La forma más sencilla es realizarlo a través de las claves de registro del sistema. Las entrada de registro deben crearse en ”…/Velneo/vClient/Login”. Las entradas configurables son:

  • Title: título de la ventana de conexión.
  • WindowIcon: ruta del fichero o URL de la imagen de icono de la barra de título.
  • Image: ruta del fichero o URL de la imagen de la ventana de conexión.
  • ImagePosition: posición de la imagen de la ventana de conexión. Puede ser: "top", "left" o "right".

Esta es una configuración centralizada para todos los vClient. Con esta opción de parámetros en el registro, podemos configurar corporativamente todos nuestros accesos desde vClient a todas las aplicaciones. También es posible personalizar nuestro formulario de login en función de los parámetros de arranque de vClient. Esta opción permite que cada acceso directo pueda tener una personalización específica. Los parámetros de arranque de vClient que debemos utilizar son:

  • loginTitle: título de la ventana de conexión.
  • loginWindowIcon: ruta del fichero o URL de la imagen de icono de la barra de título.
  • loginImage: ruta del fichero o URL de la imagen de la ventana de conexión.
  • loginImagePosition: posición de la imagen de la ventana de conexión. Puede ser: "top", "left" o "right".

A continuación se muestra un ejemplo de acceso directo personalizado:[code lang="js"]// Ejemplo de acceso directo con imágenes en el disco local".../vClient.exe" /loginTitle=”Mi aplicación” /loginWindowIcon=”c:/apps/miApp/mi_logo.png” /loginImage=”c:/apps/miApp/login_image.png” /loginImagePosition= "top"// Ejemplo de acceso directo con imágenes en urls externas".../vClient.exe" /loginTitle=”Unicef” /loginWindowIcon=”http://maysonadas.files.wordpress.com/2011/04/unicef-logo.gif” /loginImage=”http://maysonadas.files.wordpress.com/2011/04/unicef-logo.gif” /loginImagePosition= "right"[/code]Hay que tener en cuenta que las imágenes pueden estar ubicadas en el equipo localmente o en una URL remota. (3112)

Configura a tu gusto la barra de título y los botones de formularios y vistas de datos

Se han añadido 5 nuevos estilos en el objeto formulario y en los objetos del grupo vista de datos que permiten configurar diferentes aspectos gráficos. Los estilos incluidos son:

  • Sin barra de título (sólo en cuadro de diálogo)
  • Sin menú de sistema (si se muestra el botón cerrar el menú estará visible)
  • Sin botón minimizar
  • Sin botón maximizar
  • Sin botón cerrar

Hay que tener presente que algunas de estas opciones sólo estarán operativas cuando el objeto se muestra en modo “cuadro de diálogo”.El sistema, por defecto, siempre que esté visible algún botón mostrará la barra de título y el menú de sistema aunque los hayamos marcado para que no estén visibles.Estas opciones permiten configurar el aspecto visual no sólo de la barra de título, sino también del propio aspecto del formulario ya que podamos llegar a ocultar la barra de título. (2846 y 3084)

Ya puedes visualizar los formularios en vista y en cuadro de diálogo

Mayor usabilidad y funcionalidad en tus aplicaciones. Ya está activa la propiedad “Siempre en cuadro de diálogo” que en caso de tener el valor verdadero forzará a que el formulario se abra en cuadro de diálogo bloqueando el resto del interfaz de la aplicación, mientras que si el valor es falso el formulario se mostrará en vista, por ejemplo en una pestaña independiente si la ventana está en modo Tab.Esto permite abrir varios documentos del mismo tipo en pestañas diferentes. V7 controla la apertura del formulario y en caso de estar activa una transacción en curso forzará a que la ventana se muestre en cuadro de diálogo, independientemente del valor de la propiedad “Siempre en cuadro de diálogo”, de esta forma se garantiza que no quedarán formularios abiertos cuando el usuario finalice la transacción. Los formularios abiertos desde proceso siempre se abren en modo “cuadro de diálogo”.Los formularios lanzados desde una acción se visualizarán en el modo especificado en la propiedad “cuadro de diálogo”, salvo que se cumpla la condición comentada anteriormente de que exista una transacción en curso que se pueda ver afectada por la operación del formulario.(1439)

Potencia tus aplicaciones haciéndolas multi-idioma de forma sencilla

Importante mejora en la gestión multi-idioma de las aplicación. En el menú personalización y selección de idiomas, ahora, se muestran los idiomas del proyecto de arranque de la aplicación. Se podrá seleccionar cualquier idioma asignado al proyecto independientemente de cual sea el sistema operativo o que exista traducción para dicho idioma del interfaz del vClient. La selección del usuario se almacena y recuerda hasta un próximo cambio. (334 y 3091)Si en el directorio de la aplicación se incluyen ficheros de traducción (extensión .qm) estos idiomas saldrán en el menú de selección de idiomas. Este tipo de ficheros de traducción es útil para la localización de los textos de los clientes: vCLient y vWebClient. (3092)Recuerda que con el componente vTranslator, traducir y localizar todos los textos de tu aplicación es una tarea rápida y sencilla que incluso puede realizar cualquier profesional aunque no sea programador.

Visualiza o imprime el nombre de un campo en cualquier idioma

En la versión 7.10 se han realizado otras mejoras que facilitan la gestión multi-idioma de las aplicaciones. Sin embargo, hay circunstancias en las que es necesario visualizar información en un idioma diferente al que tienen seleccionado el usuario. Por ejemplo, es necesario imprimir un informe en el idioma que tenga configurado el cliente o el proveedor. Para poder configurar esta información de forma sencilla se ha incluido una nueva función de campo.En caso de no indicarle el parámetro idioma_país, la función devolverá el nombre del campo en el idioma en curso.El parámetro idioma_país se resuelve con los valores de código ISO-639 para el idioma e ISO-3166 para el país. Por ejemplo, Español de España (“es_ES”), Español de Argentina (“es_AR”), Español de México (“es_MX”). (3095)

Tecla barra espaciadora funcional en rejillas

Se puede utilizar la tecla barra espaciadora como tecla aceleradora para la apertura del formulario desde el objeto rejilla obteniendo la misma funcionalidad que se puede conseguir con el doble clic de ratón o la tecla Intro. (2777)

Tecla Enter en Mac operativa

En sistemas operativos Mac ahora ya está operativa la tecla Enter en diferentes controles de todos los componentes (vDevelop, vClient, vWebClient, etc.) permitiendo, por ejemplo, la apertura de formularios desde rejillas con Enter o la selección de valores de propiedades en vDevelop. Esto agiliza el desarrollo de aplicaciones en sistemas operativos Mac OSX. (2777)

Mejoras en el refresco de registros eliminados en vistas de datos

Cuando en una vista de datos se utiliza la opción formulario de baja para eliminar un registro, al finalizar la acción el registro eliminado desaparece de la lista. Cuando el formulario es mostrado con la opción formulario de modificación, si eliminamos el registro, aunque no se muestran sus datos, permanece en la vista de datos una fila vacía. Se ha mejorado el refresco y ahora cuando se elimina el registro siempre desaparece de la vista de datos la fila que ocupaba independientemente de que el formulario se haya mostrado con la opción formulario de modificación o formulario de baja. Esto facilita el uso de un sólo formulario para el mantenimiento de tablas. (3133)

Simple clic mejorado en menús arbolados

En el control menú arbolado de formularios existe un estilo “Simple-click dispara” que ha sido mejorado ya que además de lanzar la acción de menú con un sólo clic, cuando se aplica el simple clic sobre una rama ésta se expande o se contrae. Este estilo es totalmente compatible con el estilo “Solo una rama abierta”. (3128)

Tamaño de fuente adecuado en Android

Se ha configurado el tamaño adecuado a la fuente por defecto en Android. (3134)

Mejoras en el comando Pedir dato

El comando de instrucción “Pedir dato” ahora es sensible al tipo definido en la variable local de retorno. Ahora cuando se solicitan valores numéricos, con o sin decimales y con o sin signo, el dato a grabar por el usuario se formatea correctamente. (1493)

Control de edición de maestros de sólo lectura con vista de datos

Se ha mejorado el control de edición de maestro con vista de datos asociada para que si está configurado como de “sólo lectura”, además de estar apagado el botón de desplegar lista tampoco funciona la tecla F4, evitando de esta manera que el usuario pueda realizar cambios en ese campo. (3074)

Funcionalidad

Mejoras en la ejecución de funciones remotas

Hasta esta versión, si la ejecución de una función remota superaba los dos minutos, la ejecución de dicha función finalizaba estuviese o no generando operaciones en la transacción. Ahora una función remota puede estar ejecutándose sin límite de tiempo siempre que esté activa en el servidor. Se ha establecido un timeout de 10 minutos para que en caso de producirse un error en la ejecución el cliente lanzador de la función remota recibe notificación de la finalización anómala de dicha función remota. (3089)Además, se ha controlado que si el cliente pierde la conexión con el servidor, el servidor se encarga de abortar la transacción en curso de la función remota remote y finalizarla de forma controlada, así como de expulsar al enganche generado por la función remota. (3098)Atención: Debido a estas mejoras hay un cambio en el protocolo que hace incompatible la ejecución de funciones remotas desde clientes anteriores a la 7.10. Por lo tanto a los servidores de la 7.10 es necesario ejecutarles las funciones remotas desde clientes de su misma versión.

Señales simple clic, doble clic e ítem activado enviadas por el multivista

Cuando un objeto multivista que tiene incrustados otros objetos de vista de datos recibe una señal de simple clic, doble clic o ítem activado ahora envía dicha señal a los objetos de vista de datos incrustados. (3086)

Activadas las señales inicializado y timer en alternador de lista

Ya están operativos los manejadores de señales inicializado y timer en el alternador de lista. Esto permite gestionar estas señales directamente en el alternador sin necesidad de gestionarlos en los objetos de vista de datos incrustados en el alternador. (2663)

Mejoras en los controles de edición de maestros con vista de datos

Se ha subsanado una incidencia que se producía con la señales de pérdida y ganancia de foco. Estas señales se disparaban al comenzar a escribir en un control edit de un campo enlazado a tabla maestra que tuviese configurado una vista de datos o al desplegar un calendario de un edit de fecha. Ahora estas señales sólo se disparan cuando se produce realmente una ganancia o pérdida de foco del control de edición. (2931)También se han realizado mejoras de estabilidad en el control de edición de maestro con vista de datos asociada evitando errores que se producían en el vClient al cancelar la edición. (3051)

Mejoras en el cambio de registro con la rueda del ratón

Ahora al usar la rueda del ratón sobre un control de edición de maestro, además de cambiar el registro seleccionado el control de edición de maestro gana el foco lo que ayuda al usuario a comprender que está realizando un cambio y se hace su operativa homogénea con la que existe en los control de edición numéricos. (2998)

Mejoras en las reactivaciones de licencias

Se ha realizado una mejora en el control de reactivación de licencias relacionado con máquinas que disponen de más de una tarjeta de red. Con esta mejora se evita la reactivación de las licencias y se evita el trastorno que causa tanto a los desarrolladores como a los clientes finales. (2972)

6 nuevas funciones de fórmula

Se han implementado 6 nuevas funciones de fórmula que facilitan el control del idioma y país en curso: (3115)[code lang="js"]getCurrentLanguageName() // Nombre del idioma en cursogetCurrentLanguageCode() // Código QtLocale del idioma en cursogetCurrentLanguageISOCode() // Código ISO 639 del idioma en cursogetCurrentCountryName() // Nombre del país en cursogetCurrentCountryCode() // Código QtLocale del país en cursogetCurrentCountryISOCode() // Código ISO 3166 del país en curso[/code]

Separadores de formulario con formulario de origen diferente al formulario principal

Se controla el origen del formulario incrustado en un separador de formularios evitando el cierre inesperado de vClient o vWebClient en caso de que no se correspondan. Este problema podía producirse cuando el programador tras tener insertado un formulario en un separador de pestañas le cambia la tabla de origen al formulario principal o al formulario incrustado generando un problema que podía llegar a causar el cierre incontrolado de vClient y vWebClient. (3066)

Uso del intérprete JavaScript en el módulo vModApache

Se ha resuelto una incidencia que se producía cuando se ejecutaba un proceso desde vModApache que usaba el comando “Script: Crear intérprete” lo que producía el cierre inesperado de vModApache y problemas derivados del cierre anómalo. (3075)

Base de datos

Mejoras en la gestión de tamaño de caché

Se han realizado mejoras en la gestión de caché en sistemas operativos de 64 con más de 2GB de RAM, evitando un consumo excesivo de memoria que producía ralentización del equipo o incluso el cierre inesperado de vClient o vWebClient. Se ha limitado a 1,2 GB el consumo de memoria de la caché en sistemas operativos de 32 bits. (3052)

Mejoras en el uso de memoria al regenerar índices

Se han realizado mejoras en la gestión de la memoria cuando se regeneran índices en sistemas operativos de 64 bits con más de 2GB de RAM. Se ha limitado el uso de memoria en la regeneración a 1,3 GB en sistemas operativos de 32 bits. (3100)

Orden de creación de campos en tablas submaestras

Tanto en la creación de nuevas tablas de tipo submaestras como al crear un campo de tipo enlace a tabla submaestra desde la toolbar del editor de tablas, a partir de esta versión los campos se crean en el orden de maestros de nivel superior hacia los inferiores terminando por el campo ID de la tabla submaestra. Esto permite, por ejemplo, que el orden de los campos en los tubos de ficha o el orden de lanzamiento de los contenidos iniciales sea más lógico.Es importante recordar que cuando se realizan cambios programados con el comando de instrucción modificar campo, se deben realizar los cambios de valores en el orden (abuelo, padre, hijo, id) para garantizar que los contenidos de dichos campos no se borren. (2893)

Actualizaciones en cascada al eliminar un registro

Se ha resuelto una incidencia sobre las actualizaciones que se producía cuando se utilizaban múltiples tablas y actualizaciones a diversas tablas combinadas con actualizaciones en cascada y triggers. Se trataba de un caso particular y concreto que se manifestaba al eliminar un registro de una tabla intermedia de la actualización en cascada. (3073)

Edición

Nuevo asistente de fórmulas vitaminado

Se ha incluido en el editor el autocompletado de campos, variables globales y funciones de campo que se activa en múltiples circunstancias:

  • Si escribimos “#” y la fórmula tiene una tabla de origen se visualizan los campos de la tabla.
  • Si escribimos “.” después de un campo de tipo enlace a otra tabla se muestran los campo de la tabla enlazada.
  • Si escribimos “$” se mostrará un popup con las variables globales a seleccionar.
  • Si escribimos “:” tras un campo se mostrarán todas las funciones de campo.

Se ha incluido en la toolbar el botón de operadores que muestra las opciones que correspondan en función de si la fórmula editada es de V7 o de JavaScript. (3079 y 3096)

Selección mejorada de tabla en proyectos con un número elevado de tablas o tablas estáticas

Se ha mejorado la selección de tablas y tablas estáticas desde los botones de la toolbar de edición de tablas “Nuevo enlace a maestro” y “Nuevo enlace a estática”. En ambos casos ahora se muestra una lista de un tamaño reducido con todas las tablas o tablas estáticas ordenadas de forma alfabética y en el que es sencillo seleccionar la tabla escribiendo los primeros caracteres de su identificador. (3067)

Iconos para ficheros de scripts

Se han incluido nuevos iconos para fichero CSS, XML y genéricos (con un tipo no identificado) en el directorio de scripts. (3078)

Regístrate ahora y nuestro equipo se pondrá en contacto muy pronto