Novedades en 4D v18

Este documento es una compilación de todas las nuevas funcionalidades disponibles en 4D v18. Tenga en cuenta que cada funcionalidad tiene una publicación de blog relacionada para guiarlo a través de ejemplos concretos. Se puede acceder a estas publicaciones de blog haciendo clic en el título de la funcionalidad.

Además, las secciones con la etiqueta  están relacionadas con todas las nuevas funcionalidades lanzadas entre 4D v17 R6 y 4D v18.

Este documento está dividido en siete secciones:

 Base proyecto – source control

Una solución con 4D v18 permite el trabajo colaborativo de los equipos distribuidos al almacenar el código fuente en un sistema de control de fuente utilizando archivos de texto sin formato. Le permite aprovechar el poder combinado de la plataforma de desarrollo 4D con la versatilidad de un trabajo aligerado y distribuido:

 

Arquitectura 

Una base proyecto contiene todo el código fuente de una aplicación 4D, desde la estructura hasta la interfaz usuario, incluidos los formularios, los menús, las configuraciones usuario o los recursos requeridos. Dado que las bases proyecto están hechas de archivos texto, los proyectos contienen múltiples carpetas y archivos almacenados en una sola carpeta padre de la base. Cuando crea una base proyecto, encontrará muchas de las mismas carpetas que para una base binaria:

  • Data
  • Logs
  • Resources
  • Settings
  • WebFolder

También hay dos nuevas carpetas:

  • Project – Código fuente de la aplicación (equivalente a .4db)
  • userPreferences.<name> – Contiene los archivos que memorizan las configuraciones usuario (por ejemplo, los puntos de ruptura, las posiciones de las ventanas, etc.). Leer la documentación

 

Convertir una base de datos existente 

Puede crear una base proyecto ya sea creando una nueva base proyecto vacía o exportando una estructura existente (.4db) a una carpeta proyecto. Para convertir una base existente, simplemente haga clic en la línea de menú Archivo > Exportar > Estructura al proyecto. Una vez hecho esto, se muestra un mensaje para informarle de la finalización de la conversión. 4D también le permite saber si se han detectado errores que requieran de su intervención. Por ejemplo, en el caso de objetos de formulario más antiguos que ya no son soportados. Leer la documentación

 

Post Conversión 

Cuando se trata de la estructura de una base binaria, la descripción de su aplicación se almacena en dos archivos (.4DB y.4DIndx). Para una base proyecto, encontrará esta descripción en los archivos almacenados en la carpeta “Proyecto”. Después de la conversión, puede eliminar los siguientes archivos de la carpeta Proyecto (si lo desea): <database>.4db y <database>.4dIndy. Los datos para las nuevas bases proyecto residen en una carpeta “Data” al mismo nivel que la carpeta “Proyecto”. Por lo tanto, incluso durante la fase de desarrollo, un archivo ubicado al lado de la carpeta de los datos es diferente de un archivo ubicado al lado de la estructura. Recomendamos que, después de la conversión, cree una carpeta de datos en el mismo nivel que la carpeta de proyecto y mueva los archivos data.4dd y data.4DIndx a ella. Finalmente, para mantener los datos separados y facilitar la implementación, 4D ahora nombra los archivos con la palabra “Preferences” para los parámetros relacionados con el desarrollo, como la configuración del editor de código, mientras utiliza “Settings” para los parámetros relacionados con el despliegue tal como la memoria o las de copias de seguridad.

Gestión de usuarios y grupos

Debido a que las bases proyecto están completamente basadas en texto, ya no hay una razón para que la gestión de usuarios y grupos proteja el código. Este rol se ha delegado al sistema de control de versiones o al sistema de derechos de acceso a los archivos/carpetas del sistema operativo. Como resultado, los usuarios y grupos ahora solo se utilizan para manejar el acceso a los datos. Se almacenan en un archivo texto llamado “directorio.json” al lado del archivo de datos.

Despliegue mejorado 

Ya no es necesario diferenciar a los desarrolladores de los usuarios. Por lo tanto, ambos ahora tienen el tipo “Usuario”. Para simplificar el despliegue, los comandos Get 4D fileFile ahora aceptan la nueva constante Directory file, para que pueda manejar el archivo correcto de manera fácil y automática. Leer la documentación

Durante la conversión y la migración

El archivo de directorio se generará automáticamente durante el proceso de conversión en proyecto y se colocará junto a la carpeta Settings. Si hasta ahora ha utilizado el comando BLOB TO USERS para restaurar sus usuarios y contraseñas, el comando ahora generará este archivo “Directory.json” para que no necesite modificar su código existente.

Modo monousuario

En el modo monousuario, la gestión de los usuarios y de los grupos está completamente desactivada. El usuario actual siempre es el Diseñador y no se puede cambiar. Los derechos de acceso a la aplicación de los usuarios y grupos se pueden delegar al sistema. Si desea enmascarar el nombre del Diseñador con la cuenta sistema o su propio nombre de usuario, solo necesita llamar al comando SET USER ALIAS.

Modo Cliente/Servidor

En modo cliente-servidor, los usuarios y grupos están completamente operativos. Puede cambiar el usuario actual, definir un alias, cambiar una contraseña, etc.

Caja de herramientas

Se puede acceder a las páginas de la caja de herramientas Usuarios y grupos en todos los modos: monousuario y cliente-servidor. Sin embargo, en modo mono usuario, la caja de herramientas solo se puede utilizar para modificar los usuarios y grupos que se utilizarán en modo cliente-servidor.

 

Despliegue su aplicación 

El despliegue consta de dos pasos: la compilación del código y la creación de aplicaciones. Puede compilar la base proyecto de la misma manera que compila su base binaria (.4db). No hay diferencia. La interfaz es la misma y el código máquina producido es el mismo. La única diferencia es que el resultado compilado se guarda en un archivo binario (.4db) para las bases binarias, y en la carpeta “Project/DerivedData/CompiledCode” para las bases proyecto. No tiene que hacer ningún cambio para crear sus aplicaciones (base compilada, componente, aplicación independiente, aplicación cliente/servidor), puede utilizar el archivo de configuración de su base binaria con su base proyecto convertida. La diferencia radica en los archivos generados: las bases proyecto tienen un archivo con la extensión “.4dz” en lugar de un archivo “4dc”. Leer la documentación

Carga en un sistema source control

Cuando compila su base, 4D almacena el código compilado en la carpeta “Project/DerivedData”. Se recomienda cargar la carpeta “Resources”, la carpeta “WebFolder” y la carpeta “Project” (sin la subcarpeta “DerivedData“) en un sistema de source control. Leer la documentación

 

Las hojas de estilo se convierten en CSS 

Las posibilidades de las hojas de estilo se han mejorado considerablemente. 4D se inspiró en la sintaxis de los CSS para las hojas de estilo en las bases proyecto, adaptándolo a las necesidades específicas de los formularios 4D. Esto le permite configurar todas las propiedades con las hojas de estilo. Leer la documentación

 

Encripción 

Un nuevo cifrado de datos, incorporado en 4D, está ahora a su disposición. Los datos se pueden cifrar mediante código o la interfaz usuario, para todas las tablas o solo para las tablas seleccionadas. Las herramientas de cifrado de 4D se basan en una frase secreta. Se compone de una frase o de una combinación de palabras que se utiliza para generar una llave de cifrado binario con el fin de cifrar los datos con el algoritmo AES. Para trabajar con un archivo de datos cifrados, la llave de cifrado o la llave de cifrado binaria es obligatoria. 4D cifra los datos a nivel de archivo, lo que significa que su archivo de datos (4DD), su copia de seguridad y su historial están cifrados. Además de la seguridad en su propia computadora, esto facilita la copia de seguridad en la nube o en discos externos, ya que los datos permanecen cifrados.

 

Encriptación vía el CSM 

Un nuevo atributo Encriptable está disponible para las tablas en Modo Diseño. Define el estado de cifrado de una tabla al especificar que se puede cifrar. Una vez que esté listo para cifrar sus datos, la forma más fácil de hacerlo es a través de la nueva página Cifrado en el CSM. Esta página ofrece todas las funcionalidades necesarias para monitorear su encriptación de datos. Puede utilizar esta página para cifrar o descifrar el archivo de datos, así como volver a cifrarlo y/o cambiar su frase secreta. Leer la documentación

 

Encriptación con los comandos 4D

Además del CSM, 4D v18 incluye un conjunto de comandos diseñados para soportar la mayoría de los requisitos de cifrado. Por ejemplo, puede administrar el cifrado con el comando Encrypt data file(), o utilizar el comando provideDataKey() para ofrecer la llave de cifrado de datos a un archivo de datos abierto. Incluso puede utilizar el comando encryptionStatus() para verificar si el archivo de datos abierto está cifrado o no y si se ha ofrecido una llave de cifrado de datos válida. La lista completa de comandos está disponible en el Centro de documentación. Leer la documentación

Para más detalles sobre las herramientas y técnicas integradas que intervienen en la creación de un entorno seguro para sus aplicaciones profesionales, consulte nuestra Guía de seguridad.

 

 

 

4D for iOS 

 

4D for iOS es una solución que le permite extender sus aplicaciones a dispositivos móviles. 4D for iOS está totalmente integrado en 4D, por lo que no es necesario realizar ninguna instalación adicional (excepto Xcode) ni experiencia previa. Estas son las funcionalidades que enviamos con esta versión:

 

Crear, editar, eliminar 

La edición de datos directamente desde su aplicación ahora es posible gracias a las acciones. Esto significa que sus usuarios pueden editar datos directamente en su aplicación iOS. Para proteger su lógica empresarial, cada “acción” se envía a 4D y ejecuta sus métodos 4D para verificar, calcular datos adicionales y finalmente aprobar o rechazar la entrada del usuario. Además, se ofrecen acciones predefinidas para administrar el contenido de su aplicación: Añadir, Editar y Eliminar. Leer la documentación

 

Formato de datos

Formateadores de datos, un concepto recientemente introducido que le permite definir formatos de datos específicos para sus campos para que el contenido se muestre en el formato correcto. Puede remplazar rápidamente el formato predeterminado de sus campos para mostrar el formato que elija, como moneda, booleano, porcentaje, fechas y mucho más. Por ejemplo, imagine que desea mostrar una imagen para visualizar las facturas “pagadas” y “no pagadas”, pero que se ajusta mucho mejor en el iPhone en lugar de una casilla de verificación simple. Leer la documentación

 

Búsqueda multicriterios

4D for iOS ahora soporta la búsqueda de criterios múltiples. Después de seleccionar su plantilla de formulario listado, suelte varios campos en el área de búsqueda para activar la búsqueda de criterios múltiples. Al especificar varios valores para el mismo campo, se utiliza un operador OR de fondo. Por ejemplo, arrastre Nombre de la empresa, Apellido y Ciudad al área de búsqueda para permitir que su usuario ingrese cualquiera de esta información para buscar un cliente. Leer la documentación 

 

Búsquedas restringidas

Otro concepto recién introducido: búsquedas restringidas. Le permiten filtrar los datos que se sincronizarán con su aplicación móvil. Limitar los datos solo a las facturas del año pasado, solo a clientes activos o solo a la región bajo la responsabilidad de un gerente de ventas es increíblemente práctico y ahorra tiempo sincronizando datos y MUCHO espacio en su teléfono. Leer la documentación

 

Sincronización incremental de datos

Otro concepto interesante incluido en 4D for iOS es la sincronización incremental de datos. Responde a dos necesidades diferentes: incluso las búsquedas restringidas pueden resultar en un conjunto de datos enorme, de manera que ahora 4D realiza un seguimiento automático de los datos actualizados o eliminados y sólo actualiza estos datos en el dispositivo. Además, sus datos no solo son actualizados cada vez que lanza su aplicación, sino que también cada vez que pasa al primer plano o en respuesta a una acción del usuario. Leer la documentación

 

Gestionar relaciones

4D for iOS soporta los tipos de relación N a Uno y Uno a N. Para N a uno, es simple, puede utilizar los campos asociados en un formulario para el teléfono al igual que los campos de la tabla principal. Para las relaciones Uno a N, el formulario contiene un botón, que permite pasar a otra página que muestra la lista de registros asociados. Leer la documentación

 

Personalizar su aplicación

Cree sus propias plantillas formulario listado y detallado 

4D for iOS ofrece varias plantillas de formularios listado y detallada para responder a la mayoría de sus necesidades. Pero también puede crear fácilmente su propias plantillas de formularios lista y detallados. Al utilizar Xcode Storybuilder, puede crear nuevas plantillas o personalizar las existentes, utilizando todas las funcionalidades que ofrece iOS. Para utilizar la plantilla, no se necesitan habilidades especiales, puede utilizarlas como cualquier plantilla integrada. Leer la documentación

Utilice sus propios iconos

4D for iOS tiene su propia librería de iconos que cubre áreas como negocios, finanzas, educación, gobierno, salud, industria, bienes raíces, servicios, etc. Leer la documentación 

Cree formatos personalizados de datos

4D for iOS ya incluye formatos básicos de datos para fechas, porcentaje, hora, etc. Pero también, puede crear sus propios formatos y utilizarlos directamente desde el Editor de proyectos. Por ejemplo, puede crear un formato integertoString, que reemplaza los números internos con nombres, como los códigos de envío. O integerToImage, para reemplazar códigos como 1,2,3,4 con insignias de colores que muestren el estado del socio.  Leer la documentación

 

ORDA

4D v18 continúa brindando mejoras a ORDA con las siguientes funcionalidades:

Datastore remoto

Ya no está limitado a la base de datos actual, puede acceder a una o más bases de datos 4D remotas publicadas en 4D Server(s). Se puede publicar una base de datos remota como un recurso REST y acceder desde el software del cliente 4D. Esta base de datos remota es utilizable (en lectura/escritura) directamente con los conceptos ORDA (que activará solicitudes REST entre el cliente y el servidor). Las conexiones TLS son, por supuesto, compatibles. Puede restringir el acceso a usuarios 4D específicos o desarrollar su propio control de acceso en las credenciales del usuario. Incluso utilizando el servidor web para acceder al servidor REST, no requiere una licencia de servidor web. Las licencias 4D Client estándar se utilizan para las conexiones. Leer la documentación 

 

Registrar las peticiones ORDA 

Hay nuevos métodos ORDA disponibles en el objeto ds para ayudarlo a depurar ya optimizar su código ORDA de manera que pueda entender mejor las peticiones enviadas. El método startRequestLog() es muy flexible ya que, cuando se llama con un objeto File, puede registrar las peticiones ORDA en un archivo o en la memoria. Para detener el registro de peticiones ORDA, puede llamar al método stopRequestLog(). Leer la documentación 

 

Nuevo método para ordenar una selección de entidades 

Con la ayuda de fórmulas, ahora puede ordenar una selección de entidades utilizando criterios complejos en un método proyecto o una expresión 4D. La fórmula evalúa los criterios de ordenación que se pueden dar en forma de una cadena o de un objeto Formula al método orderByFormula(). Leer la documentación

 

Peticiones avanzadas con la ayuda de fórmulas 

El método query() se ha actualizado para soportar un objeto Formula como parámetro y devolver un nuevo objeto de tipo EntitySelection que contiene todas las entidades encontradas. Esto permite la creación de criterios de búsqueda más sofisticados. Leer la documentación

 

Optimización del rendimiento en modo cliente/servidor

Se ha mejorado enormemente el acceso a tablas grandes (especialmente aquellas con relaciones) en modo Cliente/Servidor utilizando ORDA. Cuando se utilizan selecciones de entidades en los list box o código en bucles (por ejemplo, WhileFor each) los campos utilizados se analizarán automáticamente para optimizar la transferencia de la red. Verá un rendimiento de LAN mejorado de 2 a 3 veces y hasta 30 veces más rápido en WAN (dependiendo de la red y del tamaño de los registros). Y lo mejor de todo: no hay necesidad de cambiar nada en su código, todo es automático. 

 

Métodos para obtener la información de la estructura

Hay muchos métodos disponibles que le permiten obtener información relacionada con la estructura, como número de tabla o de campo. Esto puede ser útil al integrar paso a paso ORDA en su código 4D clásico. Sin embargo, el propósito principal de estos métodos miembros es brindarle una forma de escribir código genérico que sea aplicable sin importar la estructura de la base de datos. Leer la documentación

 

Placeholders nombrados para las rutas de atributos

También puede utilizar marcadores de posición para las rutas de atributos (nombres de campos en las tablas). Hay dos tipos disponibles: Indexado – insertado como: paramIndex (por ejemplo: 1,: 2,… con un incremento de 1) en la cadena de búsqueda y sus valores correspondientes son ofrecidos por la secuencia de parámetros valor, y Nombrado – insertado por como: paramName y sus valores se ofrecen en los atributos y/u los parámetros de los objetos en la cadena de búsqueda. Leer la documentación

Placeholders nombrados para los valores

Ahora es más fácil escribir las búsquedas en código ORDA genérico gracias a los marcadores de posición nombrados para los valores. Estos marcadores de posición se ofrecen como parámetros de búsqueda y se reemplazan por otro valor cuando se evalúa la cadena de búsqueda.  Leer la documentación

 

 Lenguaje 4D y otras funcionalidades de programación

Envío de mail

Hay disponible una nueva forma de crear y enviar correos electrónicos. La nueva funcionalidad es fácil de usar, y también más poderosa que la forma anterior con los 4D Internet Commands. El nuevo comando SMTP New transporter le permite configurar una nueva conexión SMTP. La creación y el envío de correos electrónicos siguen tres pasos: crear su transportador SMTP, crear un objeto de correo y luego enviar el correo electrónico. Un objeto de correo tiene múltiples propiedades: fromccbctosender,textBody, htmlBody, por nombrar algunas. Además, se puede agregar un archivo adjunto con el comando MAIL New attachment. Una vez creado, el objeto de correo se puede enviar con el comando transporter.send().

 

Log de conversaciones SMTP

El comando SMTP New transporter crea una conexión entre un servidor SMTP (tal como Exchange o Gmail) y un cliente, y registra, en texto bruto y sin cifrar, todas sus comunicaciones. Hay disponible una nueva propiedad logFile disponible, que contiene la ruta completa del archivo de registro definido para la conexión SMTP. El archivo se puede producir en dos versiones: una versión estándar y una versión extendida. Ambas versiones pueden ser activadas por el comando SET DATABASE PARAMETER. Leer la documentación

 

Analizar un documento MIME, modificarlo y reenviarlo

El nuevo y poderoso MAIL Convert from MIME convierte un correo electrónico recibido o un documento MIME creado con 4D Write Pro, en un objeto. Esto le permite editar o modificar el objeto según lo necesite, como cambiar el asunto, eliminar o agregar receptores, modificar el cuerpo, agregar adjuntos, etc., y luego enviar el documento. Por ejemplo: en caso de que utilice 4D Write Pro para crear correos electrónicos HTML con imágenes estáticas en el texto y necesite enviarlos, así debe proceder:

  • Exporte su documento 4D Write Pro al formato MIME,
  • utilice el comando MAIL Convert from MIME para transformar el MIME en objeto mail,
  • luego envíelo vía el comando SMTP New transporterLeer la documentación 

 

Activar el depurador en modo compilado y en modo engined

Ahora puede utilizar el depurador 4D para depurar código en modo de producción, durante la ejecución del comando PROCESS 4D TAGS a través del comando TRACE en el código insertado entre las etiquetas <!–#4DCODE–>. Leer la documentación

 

Cree su propio diálogo de conexión para seleccionar el servidor

Ahora puede utilizar una aplicación monousuario fusionada para crear su propia caja de diálogo de conexión a un servidor engined. Leer la documentación

 

Comando Form event modificado

El comando Form event ha sido renombrado como Form event code por claridad. El comando FORM Event, devuelve un objeto, ha sido añadido – sin necesidad de cambiar su código. El nuevo comando devuelve un objeto con información múltiple. Además del evento en sí, también hay información sobre el objeto que desencadena el evento, tal como el nombre del objeto y los datos adicionales según el tipo de objeto. Leer la documentación

 

Notación objeto para manejar archivos y carpetas 

Crear, modificar o eliminar archivos y carpetas en su disco es más fácil e intuitivo. Se ha agregado un nuevo comando Folder que le permite crear un objeto carpeta a partir de una constante, una ruta POSIX, o una ruta de plataforma. El objeto carpeta tiene propiedades (por ejemplo, namemodificationDatemodificationTime) y métodos (por ejemplocreate()moveTo()rename()delete()) que permiten la creación y manipulación de carpetas. Al igual que con las carpetas, el comando File está disponible para manejar archivos. El nuevo objeto archivo permite acceder y manipular los atributos del archivo. Puede utilizar los métodos de archivo para escribir y leer el contenido de un archivo, moverlo, eliminarlo, etc. Leer la documentación

 

Comandos Zip

Puede comprimir o descomprimir sus archivos por código sin llamar a librerías o herramientas externas. El nuevo comando Zip Create archive le permite crear un archivo zip pasando un archivo, una carpeta o un objeto con parámetros. Y para descomprimir, utilice el nuevo comando ZIP Read archive que devuelve un objeto de archivo que puede manipularse fácilmente para obtener la lista de archivos, extraer un archivo en particular o todo el archivo. La utilización o creación de un archivo comprimido funciona de manera bastante similar a los nuevos comandos File y Folder, manteniendo su código simple y fácil de leer. Leer la documentación

 

Recuperar la cadena de llamada en ejecución 

Un nuevo comando Get call chain está disponible para darle una visión general del código ejecutado. Esto le ayuda a saber dónde se encuentra en su código, especialmente cuando un método llama a otros métodos, que luego pueden llamar a otros métodos. El comando devuelve una colección de objetos con cada objeto que representa un paso de ejecución y describe su base de datos, tipo de método, nombre de método y línea de llamada. El comando se puede utilizar en todos los contextos de ejecución de código, tanto en modo interpretado como compilado. Leer la documentación

 

Nueva herramienta para analizar historiales de depuración 

Hay una nueva herramienta disponible para ayudarlo a analizar los logs de depuración. Por ejemplo, podrá ver qué procesos requieren más tiempo, la cadena de llamadas con su tiempo de ejecución correspondiente y mucho más. Esta herramienta está diseñada para ayudarlo a encontrar conflictos en su código y mejorar el rendimiento de sus bases de datos. Leer la documentación

 

Aplicaciones 4D en modo headless

Ahora puede iniciar una aplicación 4D sin interfaz, también conocido como modo headless, a través de la interfaz de línea de comando (CLI) con el nuevo parámetro headlessDisponible para todos los tipos de aplicaciones: 4D, 4D Server, aplicaciones independientes, remotas y fusionadas. Los mensajes de error u otros diálogos se obtienen automáticamente y se redirigen a un archivo de historial, evitando detener el servidor. Leer la documentación

 

Apropiativo

Deshabilitar localmente la verificación del hilo de seguridad

Ahora puede decirle al compilador que una parte del código no debe verificarse por compatibilidad no apropiativa, sabiendo que esta parte del código no se ejecutará porque es parte de una instrucción If o Case of y solo se ejecuta en modo cooperativo. Para hacer esto, debe rodear el código que se excluirá de la verificación del hilo seguro con las directivas especiales %T- y %T+ como comentarios. El comentario //%T- desactiva la verificación de seguridad de subprocesos y //%T + la activa nuevamente. Leer la documentación

Procesos apropiativos en 4D remoto

Sus procesos se pueden ejecutar de forma apropiativa en 4D Remoto, esto significa aprovechar al máximo la potencia de las computadoras multi-core. Dividiendo una operación en partes y ejecutándola en todos los núcleos disponibles, en paralelo, para obtener sus resultados más rápido. Leer la documentación

Más comandos hilo seguro (thread-safe)

Con todos los comandos thread-safe, sus aplicaciones pueden aprovechar al máximo las computadoras de múltiples núcleos. En consecuencia, las respuestas a las peticiones simultáneas son más rápidas.

Los siguientes comandos 4D ahora son thread-safe: COMPRESS BLOBEXPAND BLOB, BLOB PROPERTIES, ENCRYPT BLOB, DECRYPT BLOB,GENERATE ENCRYPTION KEYPAIR, GENERATE CERTIFICATE REQUEST, RECEIVE BUFFER, SET DEFAULT CENTURY, GET DOCUMENT ICON, TRANSFORM PICTURE, SVG EXPORT TO PICTURE, Get localized document path, Get database localization, LOCKED BY, LOG EVENT, Current client authentication, GET MEMORY STATISTICS. Leer la documentación

Begin/End SQL en modo apropiativo

Begin SQLEnd SQL, y las instrucciones SQL asociadas que se utilizan con una base de datos interna ahora son compatibles con el modo apropiativo. Ahora puede iniciar todas sus solicitudes en paralelo y aumentar la velocidad de sus aplicaciones si estos comandos se utilizan para ejecutar numerosas tareas asincrónicas. Leer la documentación 

Sincronizar sus procesos

Puede utilizar,  New signal, por ejemplo, delegar el trabajo a un proceso cooperativo para utilizar un comando no apropiativo. El comando crea un objeto compartido y le permite administrar la progresión del proceso actual con dos nuevos métodos: trigger() y wait()Leer la documentación

 

Llamar el evento onResize en los subformularios

Cuando un formulario contiene uno o más subformularios, puede administrar directamente el evento on resize en el método de subformulario. Este evento se activará cada vez que se modifique el tamaño del objeto subformulario dentro del formulario principal. Esto puede suceder:

  • Cuando se cambia el tamaño del formulario principal.
  • Cuando un divisor modifica la altura o el ancho del objeto de subformulario.
  • Cuando un tamaño de objeto subformulario se modifica por programación utilizando OBJECT Set coordinates. Leer la documentación

 

Nueva variable de tipo variant

Hay un nuevo comando disponible para convertir cada variable especificada como una variable de tipo Variant: C_VARIANT. El tipo de datos variant se puede utilizar para representar cualquier otro tipo de datos (BLOB, Booleano, Colección, Fecha, Entero largo, Objeto, Imagen, Puntero, Real, Texto, Hora, Null, Indefinido), excepto los arrays. Puede utilizar el comando Type para recuperar el tipo de la variable y el comando Value type para el tipo de valor. El tipo de datos de tipo variant ayuda a escribir código genérico, por ejemplo, permitiendo que un método reciba un parámetro en forma de texto o Blob, sin necesidad de tratarlo con un puntero. Leer la documentación

 

Leer los campos Objeto 4D con el motor SQL

El motor SQL se ha actualizado para permitir la lectura de los campos Objeto 4D. Para examinar el contenido de un campo Objeto, la función SQL CAST se ha extendido para devolver una representación JSON del campo. Leer la documentación

 

Mejora de las pruebas en las base de datos

Los productos 4D ya se pueden iniciar utilizando parámetros de líneas de comandos para permitir la prueba o el despliegue automático. Sin embargo, se han agregado nuevos parámetros para darle aún más flexibilidad al abrir sus bases de datos:

–opening-mode: definirá la apertura de su base de datos en modo interpretado o compilado.

–create-data: permitirá crear nuevos datos si no se encuentra el archivo de datos actual o con un nombre específico si se pasa data.

–user-param: enviará una cadena que se puede leer después de iniciar la base utilizando el comando GET DATABASE PARAMETERLeer la documentación

 

Definir otro nombre para la cuenta usuario 4D

Un nuevo comando está disponible para definir un nombre personalizado para utilizar en lugar del nombre de la cuenta usuario 4D actual: SET USER ALIAS. Acepta una cadena como parámetro. Esa cadena (alias) reemplazará el nombre de usuario 4D en el entorno 4D. Un alias permite utilizar su propio sistema de usuario/contraseña, o un directorio de usuarios externo como Active Directory o LDAP mientras se beneficia de todos los conceptos de identificación de usuario integrados de 4D. Leer la documentación

 

Exportar un formulario 4D clásico a un formulario dinámico

Está disponible un nuevo comando FORM Convert to dynamic que le permite exportar un formulario 4D clásico (almacenado en un archivo .4DB) a un formulario dinámico. Pase el nombre del formulario y reciba un objeto que describe el formulario. Luego, dependiendo de sus necesidades, puede cambiar sus opciones de formulario, como el tamaño de la fuente o la posición de los objetos en la pantalla o incluso agregar más objetos antes de mostrarlos.  Leer la documentación

 

Mejoras al log de depuración

El comando SET DATABASE PARAMETER se ha mejorado para permitir registrar solo procesos específicos, así como también las llamadas a métodos miembros (métodos de colección u objeto). Está disponible un nuevo selector (Current process debug log recordingque lanza el registro de depuración del proceso actual. Leer la documentación

 

Los formularios dinámicos y el orden de entrada

Ahora, puede definir un orden de entrada que no esté necesariamente asociado con el orden z. Para cada definición de página de su de formulario, el atributo “objetos” contiene una lista de elementos del formulario que se organizan siguiendo el orden z. Se ha agregado un nuevo atributo a esta lista: “entryOrder”. Le permite especificar su propio orden de entrada personalizado. Si este atributo no está definido, 4D utiliza el orden z (es decir, el orden definido en el atributo “objetos”). Leer la documentación

 

Instancias multi-cliente

Ahora es posible ejecutar varios clientes en la misma computadora y conectarlos simultáneamente al mismo servidor 4D. Cada conexión cliente ahora incluye una carpeta de caché separada que contiene la dirección IP de la conexión, el puerto y el código hash. Gracias a esto, también puede conectar varios clientes desde la misma máquina a múltiples servidores en diferentes máquinas. No es necesaria una configuración. Leer la documentación

 

Escriba sus propios métodos para los objetos

El comando New formula se extiende para permitirle crear fórmulas como objetos. Puede pasar parámetros o acceder al contenido del objeto fórmula. Las fórmulas como objetos pueden realizar cálculos para que los atributos objeto que se pasen a un método. Los objetos ahora pueden tener su propia retrollamada o controlador de errores. Si ya está utilizando ORDA o está haciendo una codificación clásica basada en la selección, los objetos se han vuelto mucho más poderosos. Leer la documentación

Bloques de comentario 4D

Los comentarios pueden estar en una sola línea o en varias líneas. Ahora, en lugar de tener muchas líneas con el prefijo //, simplemente puede utilizar /* al comienzo de un comentario y */ al final para comentar un bloque completo. También puede contraerlos y expandirlos. Además, los comentarios se pueden agregar a cualquier parte de una línea, incluso dentro de una condición if o un bucle. Leer la documentación

Soporte de los atributos SVG “non-scaling-stroke”

En el estándar SVG, el atributo “non-scaling-stroke” indica que el ancho del trazo no depende del zoom o de la escala. En otras palabras, las líneas y el zoom de un objeto no se ven afectados. Ahora, hemos agregado nuevos comandos al tema “4D SVG”. Puede definir el atributo “non-scaling-stroke” para dibujar objetos con el método VG_SET_STROKE_VECTOR_EFFECT. Leer la documentación

Comandos de administración de 4D Server

Se completa la lista de comandos que le dan la capacidad de crear sus propias interfaces de administración del servidor vía un cliente o incluso como páginas web:

  • SEND MESSAGE TO REMOTE USER para enviar un mensaje desde el servidor a un usuario remoto.
  • Get process activity para recuperar una lista de sesiones de usuario.
  • DROP REMOTE USER para finalizar una sesión de usuario.
  • ABORT PROCESS BY ID para detener un proceso específico utilizando su número de proceso único.
  • Get process activityProcess properties para recuperar el número de proceso único.
  • REJECT NEW REMOTE CONNECTIONpara bloquear las nuevas conexiones remotas.
  • Get application info para saber si las conexiones han sido aceptadas o rechazadas.
  • SOAP REJECT NEW REQUESTSpara bloquear solicitudes SOAP.
  • WEB Get server info para saber si las conexiones han sido aceptadas o rechazadas.
  • Refresh license para actualizar una licencia. Leer la documentación

Está disponible nueva información sobre las URLs utilizadas por los procesos web. Esta información se puede recuperar de dos maneras: a través de la ventana de administración del servidor 4D o mediante el lenguaje 4D con el comando Get process activity; se agrega un nuevo atributo “url” al objeto cuando el proceso es de tipo web. Leer la documentación

 

El nuevo comando Get application info recupera información detallada sobre la actividad y la configuración de red de su base de datos activa. Este comando se puede invocar tanto en un cliente remoto como en el servidor 4D. Leer la documentación

Informes rápidos

Gestión de los métodos de retrollamada

Ahora puede definir el parámetro “methodName” en el comando QR REPORT. This method is a callback that runs on each managed event
Este método es una retrollamada que se ejecuta en cada evento administrado:
  • qr cmd open
  • qr cmd save
  • qr cmd save as
  • qr cmd generate
  • qr cmd page setup
  • qr cmd print preview

En el método de retrollamada, puede interceptar todos los eventos administrados, hacer lo que tiene que hacer y ejecutar el evento con el comando QR EXECUTE COMMAND. Leer la documentación

Gestión del espacio de los subtotales

Ahora para cada ruptura (subtotal), puede definir un salto de página o un alto de línea diferente. En el caso de una altura de línea diferente, la diferencia se puede expresar en puntos (pt) o porcentaje (%). Leer la documentación

Gestión de bordes

Puede cambiar la apariencia de los bordes de una celda, de una columna o o de una línea en su informe cambiando su color o el grosor de la línea. Para hacerlo, coloque el ratón sobre el elemento que desea configurar para mostrar el botón que llama a la ventana emergente, luego haga clic en él, luego puede elegir el parámetro apropiado (configuración del borde, grosor de la línea y color). Leer la documentación

Mejoras en la interfaz de usuario

La primera mejora es un nuevo botón “Guardar / Guardar como”. Eligiendo “Guardar” se guarda su trabajo al actualizar la última versión guardada del archivo para que coincida con la versión en su pantalla. Al elegir “Guardar como” se muestra un mensaje para guardar su trabajo como un archivo con un nombre diferente. La segunda mejora es la información sobre herramientas (pequeños mensajes que se muestran al pasar el ratón sobre un área). Se agregan a las filas subtotales para ayudarlo a ver fácilmente la dirección de clasificación: ascendente o descendente.  Leer la documentación

 
4D Write Pro

 

Nueva barra de herramientas

Una nueva barra de herramientas está disponible con 4D Write Pro para ayudarlo con el proceso de creación de documentos. Simplemente arrastrando y soltando un nuevo elemento de la librería de Objetos, obtiene acceso a una barra de herramientas completa con siete pestañas diferentes para que pueda cambiar rápidamente entre acciones. Leer la documentación

 

Hojas de estilo 4D Write Pro

Ahora puede administrar sus propias hojas de estilo para párrafos o caracteres gracias a los nuevos comandos que le permiten crear, eliminar e importar hojas de estilo. Una hoja de estilo de caracteres le permite definir cómo se muestra e imprime un carácter (o una palabra), mientras que una hoja de estilos de párrafo le permite definir colores de margen, relleno, pestañas, bordes y mucho más. Una hoja de estilo es un objeto que pertenece a un documento. Se crea con el comando WP New style sheet. Una vez creado, puede utilizar este objeto como parámetro para WP Set attributes. A continuación, la lista de los nuevos comandos para ayudarlo a manejar las hojas de estilo:

  • WP New style sheet: permite crear una hoja de estilo
  • WP DELETE STYLE SHEET: permite eliminar una hoja de estilo
  • WP Get style sheet:permite recuperar una sola hoja de estilo por su nombre,
  • WP Get style sheets:llena una colección de hojas de estilo de un tipo determinado y, finalmente,
  • WP IMPORT STYLE SHEETS: permite importar hojas de estilo existentes creadas en otro documento 4D Write Pro (como una plantilla, por ejemplo).

Leer la documentación

 

Convertir sus documentos a formato .docx

Ahora, los documentos 4D Write Pro se pueden exportar en formato .docx. Para hacerlo, utilice la nueva constante wk docx con los comandos WP EXPORT DOCUMENT WP EXPORT VARIABLE. Leer la documentación

Redimensionar el ancho de las columnas

Se ofrece una función lista para usar para permitir a los usuarios finales cambiar el tamaño del ancho de las columnas. Para continuar, puede colocar los separadores de fila y el puntero del ratón se convertirá en una flecha doble que muestra que la columna se puede cambiar de tamaño. Al hacer clic y arrastrar estos separadores, las columnas izquierda y derecha cambiarán de tamaño. Si se presiona la tecla Mayús mientras se arrastra, solo se redimensionarán las columnas de la izquierda y todas las columnas de la derecha se desplazarán. Leer la documentación

 

Adición y eliminación de las líneas y de las columnas

La gestión de inserción y eliminación de filas y columnas ahora es posible con dos nuevos comandos. Con el fin de insertar las líneas y las columnas se han creado: WP Table insert rows y WP Table insert columns.  Ambos comandos devuelven rangos que corresponden a partes creadas dentro de la tabla. Y para eliminar filas y columnas, dos comandos adicionales están disponibles: WP TABLE DELETE ROWS y WP TABLE DELETE COLUMNS. Leer la documentación

Fijar la altura para los encabezados y los pies de página

Un nuevo atributo de documento: wk header and footer autofit está disponible para determinar si los encabezados y pies de página deben redimensionarse automáticamente para evitar truncar su contenido. Este atributo puede ser True o False. En el caso de documentos recién creados, este parámetro será True (se activará automáticamente el cambio de tamaño de los encabezados y pies de página), y en False en el caso de importar un documento 4D Write Pro. Leer la documentación

 

Crear encabezados y pies de página por programación

Se han agregado dos nuevos comandos: WP New header y WP New footer para permitir crear encabezados y pies de página por programación. También puede utilizar el código para eliminar un encabezado y un pie de página con los comandos WP DELETE HEADERWP DELETE FOOTER. Leer la documentación

Regla vertical 4D Write Pro

Se agrega una nueva regla vertical. Permite a los usuarios gestionar gráficamente los márgenes verticales. Y si su documento contiene encabezados o pies de página, los espacios entre ellos y el cuerpo de su documento también se pueden modificar con la regla vertical. La nueva propiedad Mostrar regla vertical está disponible en la Lista de propiedades, lo que le permite habilitar la visualización de la regla. Leer la documentación

Disposición de página

Puede definir el tamaño de página, orientación y márgenes con código. Están a su disposición los nuevos atributos que se pueden utilizar con los comandos WP SET ATTRIBUTES y  WP GET ATTRIBUTES. Puede definir las propiedades para un documento 4D Write Pro. Los siguientes valores se utilizan de manera predeterminada para todas las secciones del documento que luego puede cambiar para una sección determinada:

  • wk page widthwk page height – para el tamaño de la página
  • wk page orientation – para la orientación de página
  • wk page marginwk page margin leftwk page margin rightwk page margin topwk page margin bottom – para las márgenes de página. Leer la documentación

Nuevos atributos para evitar viudas, huérfanos y saltos de página

Se han agregado nuevas opciones a 4D Write Pro para ayudarlo a evitar viudas y huérfanos, así como también saltos de página en los párrafos o en las tablas.

Las viudas y los huérfanos son las líneas al principio o al final de un párrafo que se dejan solas en la parte superior o inferior de una página. Para evitarlos, puede utilizar n nuevo atributo con el comando WP SET ATTRIBUTESwk avoid widows and orphans. Los valores disponibles para este atributo son wk truewk false. Cuando este atributo se define para un párrafo o una tabla, 4D Write Pro evita que este párrafo o tabla tenga una sola línea separada en otra página.

En cuanto a los saltos de página dentro de los párrafos o tablas, hay un nuevo atributo disponible: wk page break inside. Los valores disponibles son wk avoidwk auto. Esta opción es útil cuando no desea que un párrafo, varios párrafos o una tabla se dividan en dos páginas. Leer la documentación

Gestión de secciones por programación

Una sección le permite obtener diferentes diseños dentro del mismo documento. Por ejemplo, para cada sección, puede definir un tamaño y orientación de papel diferentes, diferentes márgenes, diferentes encabezados y pies de página, etc. Esto da como resultado documentos complejos y muy bien diseñados. Las secciones se pueden manipular por código con el comando WP Get sections, lo que le permite recuperar una colección de secciones en su documento. El comando WP Get section se puede utilizar para recuperar la sección actual. Para cambiar los atributos de una sección específica, puede pasar la referencia de la sección a los comandos WP SET ATTRIBUTESWP GET ATTRIBUTES. También puede crear subsecciones con código utilizando el nuevo comando WP Create subsection. Leer la documentación

Tablas y paginación

Las tablas grandes ahora se muestran automáticamente en más de una página. No tiene que contar las filas para verificar el tamaño de una página o su orientación, ya que las tablas se dividen dinámicamente cuando se produce un salto de página o columna. El comando WP INSERT BREAK se ha actualizado para admitir una nueva constante: wk paragraph break. Leer la documentación

Expresiones 4D soportadas en imágenes ancladas

Se puede asociar una expresión 4D válida con una imagen anclada con el nuevo atributo new wk image expression attribute, ofreciendo aún más flexibilidad. Simplemente configure esta constante para toda imagen anclada para definir un método que devuelva una imagen. Leer la documentación

Obtener las coordenadas en un documento 4D Write Pro

Ahora puede obtener las coordenadas en un documento 4D Write Pro. El comando WP Get position devuelve más información sobre la posición actual de un rango o de una referencia de elemento utilizando dos nuevos atributos: bounds y rangeHeight. El primer atributo describe el rectángulo que rodea un rango según su tipo (ya sea “tipo predeterminado” (caracteres)“paragraph type”“table type” o “picture type”). También tiene sus propios atributos: topbottomleft y right. El segundo atributo describe la altura del rectángulo de delimitación del objeto. Leer la documentación

Estructura virtual

Las expresiones Tabla y Campo insertadas en los documentos 4D Write Pro ahora admiten la definición de estructura virtual de la base de datos. Esto se hace con los comandos SET TABLE TITLES(…;*)  y SET FIELD TITLES(…;*). El editor de fórmulas también admite la estructura virtual, y dado que 4D define automáticamente la interfaz de usuario en función de la configuración del sistema, el editor de fórmulas se mostrará en el idioma del usuario. Leer la documentación

Enlaces en un documento 4D Write Pro

WP SET LINK le permite definir las URLs y también le permite invocar un método desde su aplicación 4D (con parámetros) o de apuntar un marcador desde su documento. El nuevo comando WP Get links devuelve una colección de todos los enlaces en un documento, en una sola llamada. Cada enlace de la colección es un objeto con una descripción del enlace en sus atributos. Leer la documentación

Gestión de las propiedades de una vista

Las propiedades de una vista se pueden manejar por programación. El comando WP SET VIEW PROPERTIES permite configurar dinámicamente una o más propiedades de la visualización del área 4D Write Pro. Los parámetros se pueden devolver en un objeto con todas las propiedades de la vista a través del comando WP Get view properties.  Leer la documentación

Parámetros de tabulación

Las tabulaciones se pueden definir con una colección de cadenas, valores numéricos o incluso una colección de objetos. Solo necesita modificar los valores predeterminados de tabulación por defecto, puede utilizar un objeto con la nueva constante de tabulación wk tab default (agregada específicamente para este propósito). Leer la documentación

Más objetivos y comandos renombrados

Los comandos listados a continuación se han extendido para aceptar todo tipo de objetivo como primer parámetro. Todavía pueden utilizar un encabezado, pero ahora también pueden utilizar una referencia (encabezado, cuerpo, pie de página), un elemento (imagen, párrafo) o todo el documento como objetivo:

  • WP SET TEXT
  • WP INSERT BREAK
  • WP INSERT DOCUMENT
  • WP INSERT PICTURE
  • WP Insert table
  • WP SET ATTRIBUTES
  • WP GET ATTRIBUTES

 

Además, varios comandos se han renombrado:

Nombre anterior Nuevo nombre
WP Create Paragraph range WP Paragraph range
WP Create Picture range WP Picture range
WP Create range WP Text range
WP Create Table range WP Table range
WP Get bookmark range WP Bookmark range
WP Get selection WP Selection range

Leer la documentación

 
 4D View Pro

 

Trabaje con los documentos .xlsx utilizando 4D View Pro

Los comandos 4D View Pro existentes VP IMPORT DOCUMENT y VP EXPORT DOCUMENT se han mejorado. Ahora soportan archivos con la extensión .xlsx (Microsoft Excel). Simplemente puede pasar su ruta de archivo a los comandos para comenzar a funcionar. Leer la documentación

 

Una barra de herramientas de estilo cinta rica en funcionalidades 

Se ofrece una poderosa barra de herramientas estilo cinta para mejorar la interfaz de usuario de 4D View Pro. Le permite organizar las funcionalidades de 4D View Pro en un conjunto de pestañas, para aumentar la capacidad de detección de funcionalidades y permite un acceso rápido a diferentes comandos. Vale la pena mencionar que esta barra de herramientas también presenta nuevas funcionalidades, como las opciones de exportación en PDF y CSV. Leer la documentación

 

Utilizar métodos y campos de la bases de datos 

La seguridad de su base de datos se ha mejorado ya que ahora tiene aún más control sobre los datos que elige poner a disposición (o no) a sus usuarios finales, así como a qué campos o métodos permite el acceso.

Los comandos y las variables no se pueden llamar directamente desde una celda por razones de seguridad, pero se puede acceder a ellos a través de métodos permitidos que devuelven el valor del comando o la variable. Los métodos se pueden autorizar con el comando SET ALLOWED METHODS, Los comandos y las variables no se pueden llamar directamente desde una celda por razones de seguridad, pero se puede acceder a ellos a través de métodos permitidos que devuelven el valor del comando o la variable. Los métodos se pueden autorizar con el comando SET TABLE TITLESSET FIELD TITLES. Las variables, así como los comandos 4D, deben estar contenidos en un método autorizado. Leer la documentación 

Tome el control de sus métodos 4D 

VP SET ALLOWED METHODS, un nuevo comando que le permite especificar los nombres de los métodos proyecto, tipo y parámetros, e incluir un resumen. Ahora sus métodos pueden ser más informativos y descriptivos para los usuarios finales. Leer la documentación

 

Impresión y exportación PDF

Ahora, puede definir opciones específicas de impresión para cada hoja con el comando VP SET PRINT INFO. Estas opciones se utilizan para preparar el documento antes de una exportación PDF o una impresión. Ahora para exportar un documento en formato PDF, utilice el comando VP EXPORT DOCUMENT. La información de VP PRINT INFO se utilizará para incorporar automáticamente todas las fuentes utilizadas en su documento, en el archivo pdf generado. En cuanto a la impresión, se puede utilizar el comando VP PRINTLeer la documentación

 

Convertir a SVG

El comandoVP Convert to picture le permite convertir una hoja de cálculo o parte de una hoja a SVG. El archivo SVG se puede utilizar dentro de un formulario 4D para imprimirlo como parte de un trabajo de impresión 4D, junto con otros formularios o datos. Leer la documentación

 

Agregar nuevos eventos a la lista de propiedades

Un nuevo conjunto de eventos 4D View Pro está disponible y se enumera en la lista de propiedades. Devuelven información especial a la que se puede acceder con el comando Form Event: “On Column Resize”, “On Row Resize”, “On Clicked”, “On Double Clicked”, “On Header Click”, “On Selection Change”, and “On After Edit”. Cuando se produce el evento, toda la información asociada se puede recuperar del objeto devuelto por el comando FORM Event. Leer la documentación

 

Codificar un rango en 4D View Pro

Crear rangos por programación ahora es posible. Hay nuevos comandos disponibles que le permiten definir un objeto rango para manipular sus celdas: VP CellVP CellsVP ColumnVP RowVP All, VP Combine ranges y VP Name. Leer la documentación

 

Obtener y definir el contenido de una celda

Está disponible un nuevo conjunto de comandos para llenar sus documentos por programación: VP SET VALUE, VP SET BOOLEAN VALUE, VP SET DATE TIME VALUE, VP SET DATE VALUE, VP SET TIME VALUE, VP SET NUM VALUE, VP SET TEXT VALUE, VP SET FORMULA, VP SET FIELD, VP Get value, VP Get formula. Leer la documentación

 

Nombrar sus rangos y fórmulas

Se introduce un nuevo concepto: rangos y fórmulas con nombre. Puede crear dos tipos de nombres por programación:

El primero se refiere a un rango de celdas donde puede aplicar un nombre legible a través del código a las celdas que le interesan con VP ADD RANGE NAME.

El segundo se refiere a una fórmula con VP ADD FORMULA NAME para reemplazar los cálculos con nombres legibles en sus hojas de cálculo. También crea una constante y facilita los cálculos en su hoja de cálculo. Leer la documentación

 

Gestión de selecciones y la celda activa

Se incluye un conjunto de comandos para ayudarlo a configurar y obtener la celda o las selecciones activas en sus documentos:

  • VP Get active cell
  • VP Get selection
  • VP SET ACTIVE CELL
  • VP SET SELECTION
  • VP ADD SELECTION
  • VP RESET SELECTION

 

Y si desea ver una celda en una posición específica en su área 4D View Pro (por ejemplo, arriba a la izquierda o abajo a la derecha), puede utilizar el comando VP SHOW  CELL. Leer la documentación

Utilizar colecciones para leer y escribir en 4D View Pro 

Hay cuatro nuevos comandos disponibles para permitirle leer una gran cantidad de valores o fórmulas diferentes de manera más fácil, más rápida y al mismo tiempo a través de colecciones: VP SET VALUESVP Get valuesVP SET FORMULAS y VP Get formulas. Para definir los valores o las fórmulas en las celdas, simplemente cree una colección donde cada elemento represente una fila. Cada fila es una colección de valores de celda a definir en las columnas. Para leer, puede pasar un rango de celdas a VP Get values. El comando devuelve los valores en las colecciones correspondientes. Leer la documentación

 

Personalizar los estilos

Puede personalizar por programación el estilo de sus documentos 4D View Pro. Hay tres opciones diferentes disponibles. Puedes utilizar:

  • los comandos de estilo predeterminados para definir el estilo general de una hoja con los comandos VP SET DEFAULT STYLE y VP Get default style, o
  • los comandos de hoja de estilo para definir estilos personalizados de uso frecuente con los comandos VP ADD STYLESHEETVP REMOVE STYLESHEETVP Get stylesheet y VP Get stylesheets, o
  • los comandos de estilo de celda para definir el estilo de celdas específicas con los comandos VP SET CELL STYLE y VP Get cell style.

Además, se ha agregado el nuevo comando VP SET BORDER para que pueda manejar los bordes de un rango. Leer la documentación

 

 R-releases en profundidad