Novedades de 4D v20.

Este documento recopila todas las nuevas funcionalidades disponibles en 4D v20. Tenga en cuenta que cada funcionalidad tiene una entrada de blog relacionada para guiarle a través de ejemplos concretos. Puede acceder a estas entradas de blog haciendo clic en el título de la funcionalidad.

Además, las secciones con la etiqueta blank están relacionadas con todas las nuevas funcionalidades lanzadas entre 4D v19 R8 y 4D v20.

Este documento está dividido en seis secciones:

 Comunicación de red mejorada

Conozca QUIC blank

A medida que aumenta el número de conexiones simultáneas a los mayores servidores de producción que funcionan con 4D, garantizar un rendimiento óptimo se ha convertido en una prioridad para los equipos de desarrollo. El protocolo QUIC ha surgido como una solución prometedora para hacer frente a este desafío.

QUIC (Quick UDP Internet Connections) es un protocolo diseñado para mejorar la velocidad y el rendimiento en las redes del lado del servidor. Desarrollado por Google durante la última década, QUIC aprovecha las ventajas de UDP en lugar de TCP para permitir una recuperación más rápida en caso de pérdida de paquetes, congestión y otros problemas. QUIC se utiliza mucho hoy en día, por ejemplo, en HTTP/3 como «HTTP over QUIC» y es compatible con los principales navegadores, ya se utiliza en más de la mitad de las conexiones a los servidores de Google. Facebook gestiona más del 75% de su tráfico de Internet utilizando QUIC, y muchas aplicaciones, como YouTube, Gmail o Uber, utilizan QUIC para comunicarse con sus servidores.

Le animamos a que pruebe QUIC y nos haga llegar sus comentarios para ayudarnos a mejorar y perfeccionar esta nueva y emocionante tecnología, allanando el camino para su inclusión en futuras versiones de 4D v20. Y tenga en cuenta que QUIC puede mejorar la robustez de la infraestructura 4D, haciéndola mejor equipada para manejar conexiones deficientes y otros desafíos de las redes.

Lenguaje 4D y otras funciones de programación

Servidor Websocket integrado blank

El protocolo WebSocket ofrece un canal de comunicación persistente, dúplex integral entre un cliente y un servidor. Permite la transferencia de datos en tiempo real entre las dos partes y también permite una comunicación más rápida y eficiente.

4D v20 ahora incluye un servidor WebSocket integrado, facilitando a los desarrolladores crear aplicaciones web en tiempo real que pueden manejar grandes volúmenes de datos y brindar una experiencia usuario transparente.

Esto abre un mundo de posibilidades para la visualización de datos en tiempo real, las aplicaciones colaborativas y aplicaciones IoT que requieren actualizaciones instantáneas.

 

Inicializador literal de objetos y colecciones  blank

Los objetos y las colecciones pueden inicializarse en su código utilizando los comandos New object y New collection.

4D v20 introdujo una sintaxis nueva y más legible para inicializar objetos y colecciones grandes o complejos en su código: el literal de objeto y el literal de colección.

Con los literales de objeto, puede inicializar un objeto con sus propiedades y sus valores entre llaves {}. Por ejemplo, en lugar de utilizar el comando New object, puede crear un nuevo objeto e inicializar sus propiedades en una sola línea de código como esta $objeto1 := {a : «foo»; b : 42+26; c : {}; d : [«coucou»; «rien»]}.

Del mismo modo, con los literales de colección, puede inicializar una colección con sus elementos entre corchetes [].

 

Nuevos comandos para bloquear el almacén de datos blank

4D le brinda múltiples formas para hacer copias de seguridad de sus datos: 4D backup y el uso de un servidor espejo. Con 4D v20, 4D expone comandos internos para bloquear el datastore, permitiéndole copiar sus datos mientras 4D está en ejecución. Salude a ds.flushAndLock(), ds.locked(), y ds.unlock().

 

Integración automática de múltiples historialesblank

4D v20 introduce una nueva y poderosa funcionalidad que puede mejorar enormemente su productividad durante las operaciones de mantenimiento de la base de datos. Puede concentrarse en el desarrollo de su aplicación integrando automáticamente múltiples historiales al inicio de la base de datos en lugar de gastar tiempo en tareas manuales de gestión de la base de datos.

Para aprovechar esta función, sólo tiene que asegurarse de que está activado el parámetro «Integrar los últimos historiales si la base de datos está incompleta«, que es el predeterminado. A continuación, coloque los archivos de historial a integrar junto al archivo actual. 4D detectará automáticamente toda operación que falte en la base de datos de inicio y verificará todos los archivos historial para determinar si es posible la recuperación. Si no hay problemas, integrará las operaciones de todos los diarios sin ninguna intervención por su parte.

 

Crear una aplicación con los comandos 4D blank

4D ha añadido continuamente nuevas funcionalidades para ayudar a los desarrolladores a crear su propia cadena de creación, dando mayor flexibilidad y opciones de personalización para sus aplicaciones. Estas funcionalidades incluyen la posibilidad de crear una carpeta «.zip», añadir información adicional como el copyright de un ejecutable o de una «dll», y crear un archivo «info.plist».

Con el lanzamiento de 4D v20, se han añadido dos nuevas funcionalidades para facilitar aún más el proceso de creación de aplicaciones autónomas o cliente/servidor:

  1. Adición de un icono a un ejecutable.
  2. Generación del archivo de licencia de despliegue.

 

Una herramienta para la ejecución de código 4D por CLI blank

4D v20 trae una nueva aplicación llamada tool4d. Esta aplicación es un subconjunto de 4D diseñado para que automatice el proceso de construcción de su aplicación a través de la ejecución de scripts por línea de comandos.También brinda el servidor LSP, que está en comunicación con la extensión VS Code.

 

Extensión 4D-Analyzer blank

Esta extensión recibió mucha atención de nuestros desarrolladores 4D.

4D aportó soporte para el editor de código Visual Studio Code, permitiéndole manejar código 4D y proveerlo de funcionalidades estándar como resaltado de sintaxis, Ir a definición, ayuda de firmado y completado de código.

4D v20 aporta nuevas capacidades al editor de código Visual Studio Code a través de la extensión 4D-Analyzer podrá usar plegado y sangría de código, y a la verificación de sintaxis.

 

Conozca la función Distinct mejorada blank

La función distinct de las Colecciones y Selecciones de entidades permite recuperar una lista de valores únicos.

Con 4D v20, también puede recuperar el número de ocurrencias de cada valor único. Además, permite traer todas las rutas de atributos utilizadas en un campo de objeto. Esta funcionalidad puede ser beneficiosa cuando se trabaja con grandes conjuntos de datos y se necesita analizar la frecuencia de valores específicos.

Comparación con un valor indefinido blank

Con la introducción de ORDA y otros objetos en 4D, los desarrolladores trabajan a menudo con valores indefinidos, lo que a veces conduce a errores al compararlos con valores diferentes.

A partir de 4D v20, se introdujo una nueva mejora que permite a los desarrolladores comparar cualquier tipo de valor con un valor indefinido sin lanzar un error. Esto significa que ahora puede comparar de forma segura valores indefinidos con otros sin preocuparse de causar un error en su código.

Nuevas funcionalidades de buscar y reemplazar blank

La función «Buscar y reemplazar» del editor de código existe desde hace muchos años. Los desarrolladores pueden buscar y reemplazar código, especialmente cuando se trata de grandes bases de código. 4D v20 trae mejoras que serán apreciadas por los desarrolladores que confían en esta funcionalidad para agilizar sus flujos de trabajo:

  • conocer el número de ocurrencias a reemplazar,
  • conocer la posición de la ocurrencia actual,
  • tener acceso permanente a las opciones de navegación Siguiente y Anterior,
  • mostrar una paleta en lugar de una ventana modal para limitar el número de clics.

 

Pasar el objeto formulario a los comandos Print Form y FORM LOADblank

Desde 4D v20, el comando Form puede usarse con Print form y FORM LOAD. En versiones previas Form, estaba disponible para DIALOG o subformularios. Este comando permite reducir drásticamente la necesidad de variables de proceso y escribir código más portable y aislado. Se trata de una mejora que sin duda hará la vida de los desarrolladores más fácil y productiva.

 

Cree su propio menú de ayuda blank

Con 4D v20, puede crear un menú de de ayuda personalizado para su aplicación pasando una colección que describa los elementos del menú. Esto, por ejemplo, le permite ofrecer a sus usuarios un fácil acceso a la documentación, soporte y otros recursos útiles.

 

Nuevas funciones prácticas para las colecciones blank

4Dv20 ofrece un conjunto de funciones para manipular las colecciones. Además de los más de 40 métodos que ya brindábamos en la versión anterior, esta versión le ofrece:

  • first() y last() como su nombre indica, permiten acceder al primer y al último elemento de una colección.
  • La función at() es también una alternativa a los corchetes (col[x]) con una ventaja; el valor puede ser negativo para obtener los elementos del final.
  • La función flat() permite aplanar las colecciones que pueden contener colecciones (que a su vez pueden tener otras colecciones, etc.).
  • La función includes() es útil porque permite saber si una colección contiene tal o cual elemento de casi cualquier tipo… texto, numérico, fecha… e incluso referencias de objetos o de colecciones.
  • La nueva función reduceRight() que es el equivalente optimizado de reverse().reduce()
  • La función flatMap() permite realizar, en una sola operación, una función map() seguida de una flat() – función que hemos mencionado antes.

 

Formato PDF para la vista previa de impresión en Windows blank

El formato PDF se ha convertido en una alternativa viable al formato XPS para la vista previa de impresión en Windows, dando a los usuarios una opción nueva y más accesible. La decisión de Microsoft de convertir el visor XPS en una funcionalidad opcional de Windows ha causado problemas a muchos usuarios a la hora de desplegar aplicaciones, lo que ha provocado que los usuarios finales no puedan previsualizar sus impresiones. Aunque instalar el Visor XPS gratuito es un proceso sencillo, algunos administradores dudan en instalar funcionalidades adicionales, particularmente en entornos de escritorio remoto.
Afortunadamente, 4D v20 ofrece ahora la opción de utilizar el formato PDF para la vista previa de impresión. Dado que casi todas las versiones actuales de Windows tienen XPS o PDF preinstalado, los usuarios finales ya no deberían tener problemas con la vista previa de impresión. Esta nueva opción ofrece una solución más flexible y eficiente que satisface las necesidades tanto de los usuarios finales como de los administradores.

 

Volver. Continuar. Interrumpir. Y más

Hemos escuchado y seguido sus peticiones en el Foro 4D con varias mejoras al lenguaje 4D.

  • Empezando por las instrucciones que permiten saltar fuera de un bloque de código:
    • La palabra clave return termina la ejecución del método o función en el que aparece y devuelve el control al método que lo llama. También puede devolver un valor opcional.
    • La palabra clave break termina el bucle que la contiene. La siguiente instrucción que se ejecuta es la que está inmediatamente después del cuerpo del bucle.
    • La instrucción continue termina la ejecución de las instrucciones en la iteración actual del bucle y continúa la ejecución del bucle con la siguiente iteración.
  • Seguido de una evaluación en cortocircuito: en una expresión que utiliza un operador AND u OR, una evaluación en cortocircuito significa que el segundo argumento se ejecuta o evalúa sólo si el primer argumento no basta para determinar el valor de la expresión. Para ello añadimos dos nuevos operadores
    • && para el operador AND
    • || para el operador OR
  • Y luego hay un operador ternario, que es una condición seguida de un signo de interrogación ( ? ), una expresión a evaluar si la condición es verdadera seguida de dos puntos (:), y finalmente, la expresión a evaluar si la condición es falsa: ¿condición? valor Si Verdadero: valor Si Falso.

 

Gestión de errores

4D v20 aporta nuevas posibilidades a la gestión de errores. A partir de ahora, puede definir un gestor de errores global que será eficiente para todos los contextos de ejecución (procesos, workers, atributos calculados ORDA, funciones ORDA, etc.). Si no define un gestor de errores local en un nuevo proceso/worker, el gestor de errores global será invocado automáticamente. Esto significa no más diálogo de error mostrado en el servidor o errores no capturados.

Visualice los componentes de sus clases en el explorador de métodos

4D ya permite a las aplicaciones que aún se ejecutan en modo binario aprovechar las funcionalidades de las clases utilizando un componente (en modo proyecto) para crear y utilizar sus propias clases desde su aplicación (basada en el modo binario). Esta funcionalidad incluye consejos y soporte de completado de código para facilitar la escritura del código.

Para hacer su experiencia de codificación aún más fácil, 4D v20 trae una nueva funcionalidad. A partir de ahora, puede visualizar una lista de todas las clases de componentes disponibles en el explorador de métodos, para decidir en un abrir y cerrar de ojos qué funciones necesita utilizar en su código.

 

Soporte de enteros mayores que integer32

¿Necesita números más grandes que 2 billones (32 bits) con alta precisión para contadores o similares? Hemos mejorado los reales y la forma en que se manejan para permitirlo. Mientras que los reales son conocidos por ser imprecisos, son 100% precisos incluso para números muy grandes, siempre y cuando no utilicen un punto decimal (=integers). Esto permite utilizar números de hasta 53 bits, o más exactamente, [-(2^53)+1, (2^53)-1]. Así, se representará exactamente un rango de -9.007.199.254.740.992 a 9.007.199.254.740.992.

La conversión hacia o desde el texto se limitaba a utilizar la notación científica de 12 dígitos, lo que suponía una pérdida de precisión. Con 4D v20, hemos mejorado la precisión y la conversión de cualquier número Real (presentando un entero) en un Texto. La mejora de la conversión a cadena afecta al comando String() y a los comandos JSON y XML que devuelven números en forma de cadena.

 

Soporte de fórmulas en las colecciones y comandos de retrollamada

Para simplificar el uso de colecciones con un método miembro que necesita un método de retrollamada, 4D permite utilizar una fórmula para definir un método de retrollamada en:

 

Permitir a los componentes publicar clases

Suponga que su aplicación aún se ejecuta en modo binario. En ese caso, esta funcionalidad le permitirá beneficiarse de las clases y del desarrollo orientado a objetos utilizando un componente (en modo proyecto) para crear y utilizar sus propias clases desde su aplicación (en modo binario). Así que a partir de 4D v20, se añade una nueva sección Componente a Parámetros de estructura -‘ General que le permite configurar como se expondrán las clases y funciones de su componente en el editor de métodos de 4D una vez instalado el componente.

 

Reenviar parámetros de una función o método a otro

Con 4D v20, los desarrolladores no tienen que manejar verificaciones complejas de parámetros (parámetros de conteo, tipos de valores) cuando llaman a una función y pasan parámetros.

Se ofrece un nuevo comando, Copy parameters, que permite pasar fácilmente los parámetros utilizados para una función o un método a otra funcionalidad. El resultado es un código más ligero, elegante y fácil de leer.

 

Comunicación entre formularios y subformularios

A partir de 4D v20, asociar una variable a un subformulario ha enriquecido las posibilidades de interfaces y de comunicación entre formularios y subformularios. Los medios de comunicación se simplifican ahora con dos nuevos comandos: OBJECT Get subform container value y OBJECT SET SUBFORM CONTAINER VALUE.

 

Nuevo comando para obtener información detallada sobre licencias

4D v20 se entrega con un nuevo comando que brinda toda la información sobre el uso de licencias: Get License Usage. También hemos ampliado nuestros registros de diagnóstico. Gracias a esta funcionalidad, podrá seguir el consumo de licencias en su servidor, optimizar su uso y planificar sus necesidades futuras.

 

Más opciones para el comando OBJECT SET enterable

El comando SET ENTERABLE ha sido mejorado, permitiéndole gestionar mejor un campo que no es editable. Como tercer parámetro, el comando admite un booleano o un entero.

  • Por lo tanto, puede utilizar el comando como antes sin cambiar su código pasando un booleano. Sólo se modifica la propiedad «enterable» (False o True).
  • O puede pasar un entero. De este modo, puede definir las propiedades enterable y focusable para su campo.

 

Acceder a los parámetros de métodos que no existen

4D v20 permite el acceso a todos los parámetros del método sin error, incluso si algunos no fueron pasados por un llamador. El código es más sencillo y legible sin la palabra clave «if» repetida.

 

Creación de un atributo blob en un objeto

Con la introducción de las clases, ha aumentado la necesidad de almacenar datos en los objetos, especialmente datos en forma de blobs. Por esta razón, 4D v20 soporta la encapsulación de blobs en los objetos.

Más allá del aspecto del almacenamiento, dado que el objeto blob es un tipo de referencia, el uso de memoria será menor y el rendimiento de la velocidad aumentará considerablemente.

 

Gestión de Byte Order Mark (BOM) y End of Line (EOL)

4D ha evolucionado sin problemas para seguir las mejores prácticas relativas a la gestión de ciertos caracteres invisibles en archivos de texto. Por eso, a partir de ahora, 4D escribe archivos de texto sin BOM. Y en macOS, 4D utiliza LF como caracter EOL. Esto es completamente automático para todos los archivos escritos por 4D, como 4DSettings, 4dm, 4DForm, etc.

En cuanto a los parámetros de compatibilidad, hay nuevas opciones disponibles que permiten a TEXT TO DOCUMENT y File.setText() generar archivos sin nomenclatura y utilizar LF como caracter EOL en macOS cuando faltan los parámetros opcionales «charSet» y «breakMode». Para más detalles, consulte la documentación.

 

Archivo .gitignore por defecto en los nuevos proyectos

El modo proyecto le permite rastrear fácilmente los cambios con Git (sistema de control de versiones), pero a menudo no desea rastrear los archivos de su proyecto en el repositorio Git. 4D v20 le permite definir qué no rastrear en un nuevo proyecto añadiendo automáticamente un archivo .gitignore por defecto en la carpeta del proyecto con una lista de archivos y carpetas por defecto a excluir.

 

Firma automática de componentes en Mac

Con 4D v20 y en Mac, 4D firma automáticamente los componentes construidos usando los certificados definidos por el usuario o una firma Adhoc si no se especifica ningún certificado. Esto permite a los desarrolladores de componentes distribuir componentes firmados para que los usuarios finales no tengan que firmarlos antes de usarlos.

 

Mostrar documentación en línea directamente desde el editor de código

Puede acceder a los detalles de una función de clase sin tener que buscar en el sitio de documentación. Basta con presionar la tecla F1 o hacer clic en la opción Ir a definición… del menú contextual.

 

Correos electrónicos

POP3: Descargar sólo el encabezado del correoblank

Cuando se recuperan mensajes de correo electrónico utilizando POP3, es posible recuperar sólo los encabezados de los mensajes (que incluyen información como el remitente, el asunto y la fecha) sin descargar todo el cuerpo del mensaje.

Recuperar sólo los encabezados de los mensajes puede ser útil cuando se desea escanear rápidamente la lista de mensajes del buzón para decidir cuáles descargar y leer en su totalidad.

A partir de 4D v20, se añade un nuevo parámetro a la función POP3Transporter.getMail() para recibir sus correos electrónicos sin el cuerpo.

 

IMAP: identificación del buzón y palabras claves del correoblank

4D v20 aporta dos funcionalidades útiles a los transportadores IMAP:

La primera es la posibilidad de gestionar palabras clave de correo electrónico personalizadas al interactuar con servidores y clientes de correo IMAP específicos. Las palabras claves personalizadas le permiten etiquetar correos electrónicos con etiquetas o categorías particulares, haciendo más fácil organizarlos y encontrarlos posteriormente. Con esta nueva funcionalidad en 4D v20, puede agregar, eliminar o listar palabras claves personalizadas de correo electrónico utilizando el transportador IMAP.

La segunda funcionalidad es el soporte del ID de buzón en el Transportador IMAP. Cuando trabaja con buzones IMAP, estos pueden ser renombrados o movidos, dificultando su rastreo en el tiempo. Con el soporte del ID de buzón en 4D v20, puede identificar un buzón específico incluso si ha sido renombrado o movido. Esto puede ser útil para realizar un seguimiento de los buzones esenciales, como los que contienen mensajes archivados o mensajes de remitentes específicos.

 

Compatibilidad nativa de Microsoft 365

A medida que más clientes se pasan a Microsoft 365 para sus necesidades de correo electrónico, 4D v20 ofrece una solución para simplificar la gestión de correos.

Las últimas funcionalidades de automatización permiten automatizar fácilmente las operaciones de mensajería de Microsoft 365 utilizando comandos integrados. Estas operaciones incluyen:

  • enviar, recibir correos electrónicos y listar las carpetas de su buzón de correo
  • mover un correo electrónico de una carpeta a otra
  • responder a un correo electrónico y crear una conversación
  • crear un borrador de correo electrónico y guardarlo en la carpeta que elija,
  • y eliminar un correo electrónico.

 

Microsoft365: gestión de carpetas blank

Microsoft está eliminando la autenticación básica para IMAP y POP3, lo que significa que los usuarios tendrán que utilizar un método de autenticación más seguro para acceder a sus datos de correo electrónico. La API Graph es una forma más segura y moderna de acceder a los datos en Microsoft 365, incluidos los datos de correo electrónico.

Con las nuevas funciones de 4D NetKit, ahora puede gestionar (crear, eliminar, renombrar y obtener información) programando sus buzones de correo mediante la API Microsoft Graph.

 

Obtener información de los usuarios desde Azure

Además de dar acceso a las aplicaciones Office, Microsoft ofrece un Directorio Activo basado en Azure, permitiendo a los usuarios iniciar sesión para acceder a servicios como Microsoft Sharepoint u OneDrive utilizando un navegador Web. Todos los servicios de Microsoft utilizan el mismo Single Sign-On, basado en la dirección de correo electrónico. A partir de 4D v20, 4D NetKit le permite formar parte de este concepto, permitiendo a los usuarios iniciar sesión en su aplicación utilizando las credenciales habituales de su empresa.

Además de permitir la autenticación única, permitirá recuperar información sobre un usuario autenticado, como email, departamento y número de teléfono. Si el administrador lo permite, podrá recuperar detalles sobre los colegas del usuario dentro de la misma empresa.

 

Soporte Bcrypt para contraseñas

A partir de 4D v20, todas las contraseñas se cifran con el algoritmo bcrypt. Este algoritmo tarda mucho más en calcularse, lo suficiente como para impedir que los algoritmos de fuerza bruta recuperen la contraseña original.
Para ponerlo en marcha, todo es automático. No es necesario tocar ningún parámetro ni ninguna línea de código. Cuando se cambia la contraseña en la caja de herramientas o utilizando los comandos CHANGE PASSWORD o Set user properties, se almacena el hash bcrypt. Y durante la autenticación, 4D reconoce automáticamente si la contraseña está almacenada con el hash legacy o bcrypt para que los usuarios continúen conectándose sin cambiar su contraseña.

 

Mejoras del cliente HTTP

Para continuar mejorando la sintaxis y las funcionalidades de 4D, hemos decidido modernizar los comandos del cliente HTTP en 4D. 4D v20 trajo una nueva forma de efectuar peticiones HTTP: las clases HTTP. Además, algunas funcionalidades de las clases HTTP, incluyendo respuestas comprimidas, respuestas fragmentadas y redirecciones.

 

Editor de código

Acceder rápidamente a diferentes funciones de una clase

Las clases se componen de varias funciones de distinta longitud. Por lo tanto, no siempre es fácil encontrar la función a modificar o pasar de una función a otra. Es posible utilizar el explorador, que muestra las clases y las funciones, pero cuando está codificando en la ventana del editor, no quiere perder tiempo cambiando de ventana.

Con 4D v20, la lista de funciones de su clase se muestra en la barra de herramientas del editor de código, lo que le permite saltar rápidamente a una función específica.

Etiquetas de comentarios

4D v20 lleva los comentarios a un nuevo nivel con etiquetas de comentarios para organizar mejor sus comentarios. Las etiquetas se utilizan para clasificar los comentarios simplemente poniendo la etiqueta al principio de la línea del comentario. Hemos puesto tres etiquetas a su disposición:

  • MARK
  • TODO
  • FIXME

La etiqueta MARK le permite dividir su código en secciones. Puede escribirlo de tres formas diferentes. Las otras dos etiquetas TODO y FIXME, se escriben de forma similar. El interés es que tienen diferentes iconos en la lista, lo que te permite organizar su código para priorizar sus acciones futuras.

Sintaxis de verificación de objetos

El autocompletado simplifica la escritura de código y limita los errores en los nombres de las funciones. Pero no los evita por completo; es fácil invertir dos letras, olvidar una mayúscula. Y luego perder tiempo buscando porque su código no funciona. Entonces, ¿qué mejor que pedir a 4D que compruebe si las clases o funciones ya existen? A partir de 4D v20, se muestra una advertencia en el editor de código si llama a una función que no existe.

Personalización del editor de código

Además de personalizar la ventana y el área de código, 4D v20 trae dos nuevas opciones de personalización:

  • Mostrar u ocultar los diez portapapeles.
  • El icono «mostrar/ocultar listas» se ha movido a la parte inferior derecha junto a las listas.

 

Navegación simplificada entre el código, la documentación y el explorador

Cuando se crea un formulario o se escribe una nueva función o método, normalmente necesita:

  • acceder al explorador para rellenar el formulario en su carpeta
  • acceder al explorador para escribir la documentación del método
  • ver la documentación de un comando en el sitio 4D en línea
  • ver la documentación de un método de un componente
  • acceder al código de la función que queremos utilizar en nuestro método para hacer algunas modificaciones
  • navegar fácilmente entre las diferentes funciones de una clase

En 4D v20, hemos añadido elementos de menú y una nueva lista en el editor de código, permitiéndote navegar mejor por los diferentes elementos de un proyecto.

 

Mostrar la documentación en línea directamente desde el editor de código

Con 4D v20, puede acceder a los detalles de una función de clase sin tener que buscar en el sitio de documentación. Basta con presionar la tecla F1 o hacer clic en el elemento Goto definition… del menú contextual.

 

Web

Depuración en el servidor con sesiones web escalables

Las sesiones web escalables han supuesto una mejora significativa. Le permiten utilizar etiquetas 4D, acciones 4D y la API REST en procesos apropiativos, incluso en modo interpretado, en un servidor 4D. Sin embargo, para depurar, necesitaba abrir su entorno de desarrollo en el servidor para hacerlo cambiar a modo cooperativo, ya que la ventana del depurador no puede abrirse con procesos apropiativos. A partir de 4D v20, simplificamos la depuración en el servidor simplemente adjuntándole el depurador.

 

Nuevo motor de renderizado del sistema Windows

A partir de 4D v20, si utiliza el motor de renderizado del sistema, 4D utiliza Microsoft Edge WebView2. Este cambio le permite beneficiarse de un navegador moderno con las últimas funcionalidades y actualizaciones de seguridad. Por ejemplo, Microsoft Edge puede ser usado para mostrar PDFs.

 

Archivos y carpetas

Manipulacioness de archivos

Cuando se trata de escribir y leer, las funciones setText y getText están a su disposición para leer o escribir todo el contenido. 4D v20 trae manejadores de archivo en caso de que quiera leer o añadir una o más líneas a un documento existente.

Los File handles son objetos creados a partir de objetos «File» y disponen de funciones para acceder a cualquier parte de los documentos y, a partir de ahí, leer o escribir su contenido secuencialmente.

SOPORTE DE LZMA, EL NUEVO ALGORITMO DE COMPRESIÓN

Con 4D V20, el comando Zip Create Archive soporta un nuevo algoritmo de compresión: LZMA. La ventaja de este algoritmo es que crea archivos más pequeños que el algoritmo de compresión estándar zip. Puede pasar un objeto «zipArchive» al comando para personalizar su zip. Esto le permite elegir el algoritmo de compresión, el algoritmo de cifrado y otras opciones.

 

Listbox

Alturas de línea automáticas en list boxes basados en colecciones

Las alturas de línea automáticas ya eran posibles para los list boxes basados en arrays, permitiéndoles adaptar automáticamente la altura de cada línea a su contenido. 4D v20 ofrece esta posibilidad a los list boxes basados en colecciones y selecciones de entidades.

 

Adiós a la tecla ALT

En lo que respecta a los list box y la acción de arrastrar y soltar, a partir de 4D v20, no es necesario mantener presionada la tecla Alt para mover varios elementos simultáneamente.

 

Relleno horizontal y vertical de celdas 

El poder de los de list boxes se amplía con 4D v20 gracias a dos nuevas propiedades: el relleno horizontal y vertical (las márgenes interiores o el espacio entre el contenido de un elemento y su borde). Darán a sus list boxes nuevas posibilidades de presentación y su interfaz tendrá un aspecto aún más profesional.

Estas propiedades pueden definirse globalmente para todo el list box o para cada elemento, como columnas, encabezados o pies de página. Una vez definidas para el list box, se aplicarán a cada subobjeto del list box por herencia. Pero, por supuesto, cada subobjeto puede tener sus propios parámetros.

La configuración del relleno puede hacerse:

  • a través del modo diseño desde la lista de propiedades en «Coordenadas y tamaño».
  • o por programación usando el comando LISTBOX SET PROPERTY gracias a dos nuevas constantes, lk cell horizontal padding, y lk cell vertical padding.

 

Desarrollar simultáneamente en 4D Server en modo proyecto

Si usted es uno de los desarrolladores que pidió la posibilidad de trabajar simultáneamente con compañeros de equipo en un único servidor de desarrollo, entonces 4D v20 le concederá su deseo, gracias a un nuevo modo para conectar un 4D Client a un 4D Server: el modo desarrollo.

Los desarrolladores pueden modificar la estructura de la base de datos, métodos, formularios y parámetros en modo desarrollo. Hemos cambiado el sistema de bloqueo para ofrecer la misma funcionalidad que en modo binario.

 

Probar la aplicación Windows SDI

Hacía mucho tiempo que no podía ofrecer a sus clientes aplicaciones fusionadas en modo SDI. Eso fue un gran paso adelante para la interfaz de usuario de las aplicaciones Windows.

4D v20 facilita probar una aplicación SDI: puede ver el resultado de su aplicación sin necesidad de construir su aplicación autónoma o cliente.

 

Workers del sistema: lance un proceso externo de forma asíncrona

Otra funcionalidad muy solicitada está disponible para usted. A veces, necesita ejecutar procesos en segundo plano y realizar acciones específicas basadas en su código de salida tan pronto como esté disponible mientras el proceso sigue en ejecución. Por ejemplo, mostrar una barra de progreso. 4D le permite iniciar un proceso en segundo plano con la nueva clase 4D.SystemWorker y ejecutar automáticamente métodos de retro llamada cuando el proceso devuelva información. Así, si lo utiliza con un interfaz, el interfaz permanece receptivo a su usuario mientras el proceso externo se está ejecutando, y cuando termina, puede mostrar el resultado a su cliente.

 

Reorganización de los historiales de diagnóstico

Los historiales de diagnóstico son cada vez más importantes para la resolución de problemas. Los hemos reorganizado por completo mejorando su contenido y añadiendo una forma de filtrar el contenido (niveles de registro como traza, depuración, información, advertencia y error). Gracias al nuevo parámetro de la base de datos Nivel del historial de diagnóstico, puede controlar el flujo de registros en el registro de diagnóstico y mantenerlo pequeño mientras registra lo que realmente necesita.

 

Archivo de configuración para Loggin

Como parte de nuestro proyecto de mejora de logs, 4D añade dos nuevas funcionalidades:

    • la posibilidad de interrumpir instantáneamente el registro
    • y una manera para que los equipos de soporte ayuden rápidamente a sus clientes a configurar sus registros a través de un archivo de configuración.
 

Interfaz de usuario

Evolución de los objetos formularioblank

Para que pueda crear las interfaces más atractivas, se ofrecen nuevas posibilidades:

  • Para los botones, botones radio y casillas de verificación, hemos añadido nuevos parámetros para el texto y el icono. La propiedad «Alineación del texto» y el nuevo «Título de la imagen».
  • Para los botones de opción y las casillas de verificación, se ha mejorado el número de estados del icono (True, False, Rollover y Disable) para permitir una mejor visualización para el usuario final.

 

Esquinas redondeadas

Además, 4D v20 ha añadido la posibilidad de redondear las esquinas de los textos estáticos y de los textos de entrada gracias al nuevo atributo «Corner radius». Se puede especificar su valor a través de la interfaz de usuario (la lista de propiedades), CSS o código.

 

Alta resolución en Windows: soporte para pantallas de alta resolución

High DPI significa puntos por pulgada (High Dots Per Inch). Representa la densidad de píxeles; cuanto mayor sea el DPI, mayor será la densidad de píxeles. En pantallas 4K, la densidad de píxeles puede ser tan alta que la visualización normal haría que todos los iconos y controles fueran extremadamente pequeños. Por ello, Windows permite cambiar la escala del texto, los iconos y los controles. En pantallas 4K, está activado por defecto. La primera vez que se admitió la DPI alta fue en Mac y ahora también es totalmente compatible con Windows. El resultado es una mejor calidad de texto y de imagen.

 

Desarrollar con 4D en un entorno oscuro en macOS

Desde 4D v19, puede crear aplicaciones en macOS que soportan el modo oscuro, así que puede complacer a sus usuarios permitiéndoles elegir aplicaciones de estilo claro u oscuro. Con 4D v20, le estamos ofreciendo, como desarrollador, la posibilidad de elegir al desarrollar su aplicación. 4D Developer Edition se integra perfectamente con el aspecto claro u oscuro de macOS.

 

Optimización de la barra de herramientas del editor de estructura

La barra de herramientas ha sido modificada para modernizar y estandarizar todas las ventanas de 4D.

Al pasar el ratón sobre tablas, campos o relaciones, se muestra información útil en la barra de estado. Una novedad en 4D v20 es la visualización de los nombres de las relaciones directamente en la barra de estado. Ya no es necesario abrir la ventana de propiedades.

 

Explorador de datos

El explorador de datos 4D es una interfaz web utilizable por el administrador y el desarrollador remotamente (de forma segura con una conexión HTTPS) o localmente en la misma máquina que su base de datos abierta.

Con 4D v20, el explorador de datos ofrece ahora dos mejoras importantes.

Visualizar las relaciones entre sus datos

La primera funcionalidad le permite visualizar las relaciones entre sus datos, facilitando la navegación y la localización de información relevante dentro de su base de datos.

Explorador de datos integrado a 4Dblank

La segunda actualización es la adición de un icono para el explorador de datos en la barra de herramientas, haciendo aún más fácil abrirlo en 4D en lugar de un navegador web externo. Los usuarios pueden acceder al Explorador de datos directamente desde la barra de herramientas con un solo clic, ahorrando tiempo y mejorando la productividad.

 

 

Despliegue

UTILIZAR LAS APLICACIONES CLIENTE DUPLICADAS Y FUSIONADAS

Como editor de software, algunos de sus clientes a veces tienen muchas instancias de su aplicación servidor fusionada, por ejemplo, una aplicación de servidor fusionada para cada empresa del grupo. En este tipo de arquitectura de despliegue, los responsables de sus clientes a menudo le piden que instale una aplicación cliente fusionada para cada aplicación servidor fusionada en su ordenador porque quieren utilizar el software para cada empresa. A partir de ahora, tiene una nueva clave buildApp a su disposición para hacer que cada aplicación cliente fusionada duplicada utilice su propia carpeta de preferencias de usuario (basada en su ruta de aplicación): ClientUserPreferencesFolderByPath.

 

Gestión de archivos de directorio en proyectos de servidor fusionados

En el lado del servidor, el usuario actual es siempre el Diseñador; por lo tanto, el acceso al explorador en tiempo de ejecución está siempre permitido. Si prefiere cambiar este comportamiento, 4D v20 le permite restringir a los administradores el acceso al Explorador de datos y al Explorador de tiempo de ejecución en sus servidores fusionados desplegados.

 

Reducir el tamaño de las aplicaciones cliente y más

4D v20 trae muchas mejoras para la construcción de aplicaciones 4D. Para empezar, puede eliminar las librerías innecesarias (como CEF/Web Area, PHP, Mecab y 4D Updater) para reducir el tamaño de sus aplicaciones. También hemos cambiado el directorio final cuando construye una estructura compilada para acomodar a aquellos que usan múltiples versiones compiladas de la misma estructura. Y para nuestros clientes japoneses, hemos fusionado la versión japonesa de 4D y la internacional en macOS.

 

Creación simplificada de aplicaciones cliente/servidor multiplataforma en Windows

Con la introducción de Silicon, la creación de aplicaciones cliente/servidor multiplataforma ha cambiado. Mientras construya su servidor en Mac, no hay mucho problema, ya que puede compilar tanto para plataformas Intel como Silicon. Pero en Windows, no es posible compilar para las Mac Silicon. 4D v20 introduce una nueva funcionalidad que reduce el número de archivos a transferir desde su Mac a su máquina Windows. 4D también generará un directorio de base de datos compilada cuando construya el cliente en Mac. Este directorio contiene sólo el código compilado para su aplicación y es, como tal, relativamente pequeño.

 

CI/CD: construya su estructura o componente compilado con Build4D

Con la introducción del modo proyecto, es bastante fácil manipular los componentes de sus proyectos. En las últimas versiones, hemos añadido varias funcionalidades que le permiten crear su propia cadena de construcción adaptada a su equipo, métodos de trabajo y necesidades.

Para ayudarle a crear su propia cadena de construcción o a integrar 4D en una herramienta de integración continua, hemos desarrollado un componente llamado Build4D, disponible en GitHub con las fuentes. Para este primer paso, Build4D le permite crear una estructura compilada y un componente. Seguiremos enriqueciéndolo para permitirle gestionar una aplicación monousuario, cliente o servidor.

 

Compartir recursos locales entre usuarios ON Windows Remote Desktop Services

Si usted fue uno de los desarrolladores que pidió una característica que permitiera descargar recursos locales en una carpeta compartida con los servicios de escritorio remoto de Windows en lugar de la carpeta de la cuenta de usuario, entonces 4D v20 le trae buenas noticias.

Optimizamos la arquitectura actual desarrollando una nueva opción para proyectos en el proceso BuildApp para permitir la mutualización de Recursos Locales.

Se activa mediante esta nueva llave BuildApp XML: /Preferences4D/BuildApp/CS/ShareLocalResourcesOnWindowsClient

Esta optimización se traduce en los siguientes resultados:

  • Una ganancia de tiempo porque los Recursos Locales ya no son descargados desde el servidor por cada usuario,
  • Y una ganancia de espacio en disco ya que, de nuevo, los recursos locales no se duplican para cada usuario en un entorno Remote Desktop Service.

ORDA

4D v20 sigue aportando mejoras a ORDA. Object Relational Data Access es una forma innovadora de acceder a los datos que combina las ventajas de la programación orientada a objetos con las de las bases de datos relacionales, permitiendo a los desarrolladores centrarse en resolver problemas de negocio en lugar de gestionar el acceso a los datos.

4D v20 aporta:

Gestión de permisos de usuarios (Servidor REST)

Además de la posibilidad de exponer o no una clase de datos y algunos de sus atributos como recurso REST – que era una forma conveniente de restringir el acceso a sus datos, 4D va un paso más allá para ofrecer un sistema poderoso y totalmente personalizable para proteger sus datos de usuarios no autorizados. Un sistema para proteger sus datos depende de quién accede a ellos y a qué datos se accede.

Esta nueva función se basa en conceptos ORDA y sesiones web escalables. Cubre todos los procesos web, como peticiones REST, peticiones recibidas en un datastore remoto y procesos web como 4DACTION o 4D tags.

 

Optimización del rendimiento con control total sobre las peticiones REST

4D v20 le da un mejor control sobre los contextos ORDA y la caché tanto para peticiones Cliente/Servidor como para REST para mejorar el rendimiento.

 

Atributos calculados

Una nueva forma de reunir aún más de su lógica de negocio en clases y clases ORDA. Los tiempos en los que tenía que definir fórmulas relacionadas con el negocio en su interfaz de usuario 4D (como concatenaciones de cadenas o cálculo del IVA) se han acabado. Ahora puede definir cálculos complejos directamente en sus Clases y utilizar el resultado como lo haría para cualquier otro campo de estructura en Rest API, su aplicación móvil o su interfaz de usuario basada en ORDA, por ejemplo.

 

Alias ORDA

4D v20 se entrega con un nuevo concepto ORDA: los alias. Son la continuación lógica y complementaria de los atributos calculados. Como su nombre lo indica, un alias es, de hecho, un acceso directo a un objeto existente del datastore. Se definen en la «clase de datos de la entidad» al igual que los atributos calculados. Mientras que un atributo calculado puede procesar todo cálculo o fórmula, un alias es sólo un atajo, lo que hace que el desarrollo sea más rápido y sencillo. Un ejemplo de uso es facilitar el acceso a los atributos relacionados (lo que significa ocultar la complejidad de una base de datos relacionada).

 

Desactivar la asignación por defecto de un valor NULL a un valor vacío

Cuando crea un nuevo campo en su base de datos, 4D le permite elegir o no hacer corresponder los valores NULL con los valores vacíos. A partir de 4D v20, en los nuevos proyectos, 4D ya no mapeará, por defecto, el valor NULL a datos ausentes. Esto es beneficioso porque ORDA está perfectamente diseñado para trabajar con valores NULL y le ahorrará muchas soluciones poco elegantes.

 

Gestión pesimista de bloqueos VIA RestModel update

Con 4D v20, puede utilizar la API REST para bloquear o desbloquear una entidad. Esto es particularmente útil para:

  • Mantener la coherencia de su código si está acostumbrado a trabajar con la API REST. No hay necesidad de escribir una función en ORDA Data Model Classes para bloquear/desbloquear una entidad.
  • Utilizar sin problemas los bloqueos pesimistas con la API REST.

 

Soporte completo de BLOBs

A partir de 4D v20, los Blobs están totalmente soportados en ORDA, como cualquier otro tipo, permitiendo a los desarrolladores ORDA usar la sintaxis ORDA para guardar un Blob en una base de datos.

 

Comparar dos selecciones de entidades

Usted necesita funciones robustas y optimizadas para trabajar eficientemente con programación orientada a objetos y escribir tan pocas líneas de código como sea posible. Por eso, con 4D v20, lanzamos una nueva función disponible en el objeto entitySelection: la función selected(). Gracias a ella, puede inspeccionar y comparar dos selecciones de entidades.

 

4D Write Pro

 

4D Write Pro ha mejorado drásticamente en las últimas versiones. De hecho, el equipo 4D ha invertido en hacer de 4D Write Pro un poderoso generador de documentos basado en plantillas, eliminando la necesidad de creación manual de documentos y reduciendo el riesgo de errores.

Con 4D Write Pro, puede alimentar y generar automáticamente documentos pre-rellenados con información contextual, extrayendo datos directamente de la base de datos 4D. Esto incluye información como nombres, fechas, direcciones y números, entre otros tipos de datos. 4D Write Pro entonces fusiona esta información con sus plantillas, proporcionando un proceso de creación de documentos ágil y eficiente.

4D v20 introduce poderosas funcionalidades como encabezados, fuentes de datos y líneas reportadas, por nombrar sólo algunas. Si usted es un profesional o un desarrollador, encontrará que estas funcionalidades son extremadamente útiles para mejorar su flujo de trabajo y productividad.

 

4D Write Pro y cajas de texto: opciones de importación/exportación docxblank

Las cajas de texto le permiten insertar un contenedor flotante, incluyendo texto, tablas, imágenes, fórmulas y otros elementos en cualquier lugar de su documento. Esta funcionalidad ha sido mejorada en la v20 para incluir la exportación e importación de estos elementos desde y hacia documentos docx.

 

Definir contextos de datos

4D v20 abre el mundo de ORDA y del desarrollo orientado a objetos a los documentos 4D Write Pro. Los documentos 4D Write Pro contienen a menudo fórmulas que devuelven datos o cálculos en función de la base de datos. Gracias a los contextos, asociar esos datos a los documentos es tan sencillo como utilizar la palabra clave This. Una manera perfecta de crear plantillas y documentos personalizados con 4D Write Pro.

 

Llenar dinámicamente las tablas con selecciones de entidades y colecciones

Llenar manualmente las tablas con datos cada vez es una tarea laboriosa. Y ahí es donde el contexto de datos llega como una opción inestimable, abriendo el mundo de ORDA y el desarrollo orientado a objetos a las plantillas de 4D Write Pro.

Ahora es posible definir un «datasource» para las tablas de 4D Write Pro. Ya sea una selección de entidades o una colección, esta «fuente de datos» alimentará automáticamente las líneas de estas tablas. Las tablas se ampliarán automáticamente en función de la selección, incluso añadiendo páginas adicionales cuando sea necesario. Esto permite al usuario final de su aplicación diseñar o modificar plantillas que se llenarán automáticamente con datos.

 

Líneas de informe inferiores (subtotales)

Imagine que tiene una gran tabla de ventas que puede abarcar varias páginas. Al final de una página, le gustaría calcular el subtotal, trasladarlo a la página siguiente e incluirlo en los cálculos de esa página. Esto es a menudo necesario, a veces incluso legalmente requerido, cuando se editan facturas largas, por ejemplo.

4D v20 permite insertar una línea de «sub total» en la parte inferior de cada parte de las tablas respectivas que puede llenarse automáticamente.

Esto puede hacerse:

  • A través de ambas interfaces (barra de herramientas y barra lateral). El menú de la tabla contiene un nuevo elemento, «Línea de reporte inferior».
  • O por programación, gracias al nuevo atributo wk bottom carry

Y para definir el contenido de las celdas de esta línea de reporte, se puede utilizar el nuevo atributo previousItems con todas las funciones disponibles (mín/máx/suma/etc.) para colecciones o selecciones de entidades.

 

Líneas de ruptura de tablasblank

Cuando tiene una lista de datos, por ejemplo, una lista de personas con sus continentes, países y ciudades, puede que quiera agruparlos por continente, luego por país y luego por ciudad. Esto facilitará la comprensión y el análisis de los datos.

Cuando una tabla se llena con datos de una fuente de datos ordenados, 4D Write Pro puede insertar una línea de ruptura cada vez que cambia el valor de los criterios de ordenación. Esto permite al usuario agrupar los datos según los criterios deseados.

En otro escenario, esta funcionalidad también se puede utilizar para crear informes basados en relaciones entre las empresas, donde una lista de empleados se puede agrupar por la empresa en cada continente. Especificando los criterios de clasificación apropiados, 4D Write Pro puede crear grupos separados para cada empresa en cada continente.

 

4D v20 se entrega con nuevos atributos para definir mejor el diseño de las tablas. Permitiéndole crear complejos documentos 4D Write Pro con facilidad, pero lo más importante, documentos visualmente atractivos: salude a los saltos de página dentro de las líneas de tabla. Esto es útil cuando las celdas tienen texto más largo (o varios párrafos). Puede ser interesante definir que una celda (y por lo tanto una línea de la tabla) también se puede dividir en dos para llenar el espacio disponible en las páginas de los documentos:

  • wk salto de página dentro de párrafo puede, por supuesto, aplicarse a párrafos, pero también a cualquier objetivo como el propio documento, una sección concreta, un rango de texto, etc. En todos los casos, el atributo se asignará a los párrafos dentro del objetivo. Se trata simplemente de una facilidad de programación.
  • wk page break inside table permite dividir una tabla en dos (o más) partes, la separación se realiza entre dos líneas de la tabla (como es habitual)

  • wk page break inside row también permite dividir una tabla, pero esta vez dentro de líneas. Tenga en cuenta que esta opción depende de la anterior. Si una tabla no se puede dividir, tampoco sus líneas.

 

Note que la opción de salto de página dentro de las líneas de la tabla está disponible en la barra de herramientas y los widgets de la barra lateral.

 

Encabezados de tabla

Esta funcionalidad trae otra útil opción de visualización de tablas, disponible por programación o a través de los widgets de la interfaz 4D Write Pro. A partir de 4D v20, puede definir encabezados en las tablas y repetirlos automáticamente después de una columna o saltos de página.

 

Detección de cambios en el documento

Cuando un documento 4D Write Pro está en modo edición, a menudo es útil saber si realmente ha sido modificado por el usuario final. Esta información permite ajustar las acciones o interfaces para una experiencia más amigable.

La nueva propiedad document.modified detectará rápidamente los cambios dentro de un documento y realizará acciones en consecuencia. Ya sea de forma transparente (realizando guardados automáticos cuando un documento permanece abierto, por ejemplo) o modificando la interfaz de forma inteligente según las condiciones.

 

Visualización sencilla de fórmulas

A todo el mundo le gustan las fórmulas; son parte integrante de los documentos de 4D Write Pro. Permiten integrar mucha información procedente de la base de datos, haciendo la creación de documentos más intuitiva y automática.

Sin embargo, algunas fórmulas pueden a veces ser largas desde el punto de vista del diseño y difíciles de leer para los usuarios finales.

Por eso 4D v20 le permite mostrar las fórmulas como un símbolo ⓕ, indicando su presencia para hacer los documentos más precisos y transparentes.

Esto puede hacerse:

  • A través de la lista de propiedades, gracias a la nueva propiedad «Mostrar fuente de la fórmula como símbolo».
  • Un nuevo elemento en la interfaz.
  • O por programación gracias al nuevo atributo wk display formula as symbol.

 

 

Desactivar la visibilidad de imágenes vacías

Los documentos de 4D Write Pro pueden contener imágenes de diferentes fuentes y en varios formatos. Estas imágenes pueden, en algunos casos, no mostrarse por razones totalmente razonables – como URLs inválidas, fórmulas que devuelven imágenes vacías, formatos no soportados por la plataforma, etc.

Sin embargo, siempre están representadas por un pequeño rectángulo vacío que muestra su ubicación teórica. 4D v20 se entrega con una nueva opción de vista que le permite hacer completamente invisibles las imágenes vacías. Esto puede hacerse de 3 maneras diferentes:

    • La primera y más directa es utilizar la lista de propiedades, que ofrece una nueva entrada en el tema de apariencia.
    • O a través de la interfaz de usuario, en la que aparece un nuevo elemento. Ya sea en la barra de herramientas o en la barra lateral.
    • O por programación utilizando el nuevo parámetro wk visible empty images.

 

 

Nuevas opciones de visualización de imágenes

A partir de 4D v20, tanto las imágenes en línea como las ancladas dentro de documentos 4D Write Pro se benefician de siete nuevos tipos de formato gracias al nuevo atributo wk image display mode:

  • Escalada (por defecto)
  • Truncada
  • Truncada centrada
  • Proporcional
  • Proporcional centrada
  • Replicado
  • Replicado centrado

También hemos facilitado el formateo de las imágenes utilizadas como fondo de documentos, secciones, párrafos, etc., gracias al nuevo atributo: wk background display mode.

Gestión de la visibilidad de las fórmulas

Los documentos 4D Write Pro ya disponen de varias opciones de visualización. Hemos añadido la opción wk formula highlight, con 4 valores posibles:

  • 0: no resaltar fórmulas y valores
  • 1: resaltar sólo las fórmulas (valor por defecto)
  • 2: resaltar sólo valores
  • 3: resaltar fórmulas y valores

También se puede hacer utilizando acciones estándar. Se pueden utilizar con casillas de verificación, botones estándar y listas desplegables.

 

Párrafos enlazados

Para tener un mejor control sobre la maquetación del documento, 4D v20 se entrega con la posibilidad de elegir si un párrafo y el que le sigue deben permanecer enlazados (no separados por un salto de página o de columna automático).

 

Exportar al formato SVG

Los documentos de 4D Write Pro ya pueden ser exportados a diferentes formatos: pdf, texto plano, Microsoft Word, HTML… A esta lista se añade ahora el formato SVG. Esto permite, por ejemplo, crear una imagen de la primera página para una previsualización rápida, utilizable en ambas plataformas y en un navegador o dispositivo móvil, o insertar un bloque 4D Write Pro dentro de otro documento, como un documento 4D View Pro.

Siendo SVG un formato de imagen, puede elegir la página de su documento a exportar. La imagen final se basará en el renderizado de la página de su documento. Tendrá en cuenta todas las opciones de maquetación, como orientación, márgenes, etc.

Mejoras en los widgets del interfaz

4D v20 trae un conjunto de funcionalidades a los widgets de la interfaz:

  • Hemos añadido un menú para insertar fórmulas en las dos interfaces.
  • También hemos añadido varios atributos de párrafos para un mejor respeto de las reglas tipográficas, para tener un documento más legible y estético, tales como:
    • Widow y control de huérfanos
    • Evitar saltos de página al interior
    • Mantener con siguiente
    • Altura de línea
  • En el widget de la barra lateral, ahora puede gestionar los saltos de página, los saltos de sección, las columnas y los parámetros de visualización como la orientación, el formato, el tipo (borrador, página o incorporado) o la visibilidad de algunos elementos (caracter invisible, encabezado, pie de página).
  • En cuanto al widget de la barra de herramientas, hemos añadido la posibilidad de llenar los campos, título, autor, asunto, empresa y notas.

 

Compatibilidad con el modo oscuro

Ahora puede desarrollar y desplegar en modo claro u oscuro en macOS. Los últimos widgets de la librería son compatibles con el modo oscuro (en macOS):

  • Barra de herramientas de la interfaz 4D Write Pro
  • Interfaz 4D Write Pro
  • Barra lateral área de texto enriquecido

 

Diálogo de parámetros de imagen

El componente de interfaz de 4D Write Pro incluye ahora un nuevo diálogo de parámetros de imagen. Este diálogo le permite definir fácilmente:

  • el tamaño de la imagen
  • el formato de visualización
  • los márgenes y el relleno
  • la posición en la página de las imágenes ancladas

 

El diálogo puede mostrarse desde el menú contextual o desde un evento como «al hacer doble clic» en el formulario utilizando el método del componente «WP PictureSettings».

Esta versión también permite añadir una imagen desde una URL con el widget de la barra de herramientas.

 

Saltos de sección continuos

A partir de 4D v20, 4D Write Pro soporta saltos de sección continuos. Un salto de sección continuo crea una sección en sí misma pero sin causar un salto de página. Esto permite, entre otras cosas, tener diferentes números de columnas en la misma página.

Se puede insertar un salto de sección continuo:

  • por programación a través del comando WP Insertar break, que ahora soporta un nuevo valor: wk continuous section break
  • Utilizando un menú con una acción estándar asociada o simplemente añadiendo una acción estándar a un botón.
  • a través de la interfaz usuario

 

4D View Pro
 

 

Ya sea para ventas, finanzas, contabilidad, análisis de datos o cualquier otra profesión que trabaje con conjuntos de datos largos y difíciles de manejar, 4D View Pro es la respuesta. Es un producto multilingüe con acceso directo a sus datos 4D que le permite aprovechar al máximo las ventajas de las poderosas hojas de cálculo integradas. Desde la posibilidad de crear tableros de control con gráficos avanzados que ya no parecen una hoja de cálculo hasta informes que pueden crearse fuera de la pantalla cada mañana y enviarse automáticamente a la dirección – 4D View Pro tiene todo lo que necesita para tomar decisiones comerciales significativas.

Y con 4D v20, el producto es más poderoso que nunca, con un conjunto de funcionalidades que sin duda encontrará útiles:

Tablas cruzadas dinámicas

Tablas cruzadas dinámicas de 4D v20. Si entre sus usuarios se encuentra gente de ventas y marketing, vale la pena probar esta funcionalidad, ya que le permite resumir y analizar fácilmente los datos directamente desde la cinta de opciones de 4D View Pro.

 

CSV: nuevo formato de importación/exportación

4D v20 le permite importar y exportar archivos CSV. CSV es un formato común de intercambio de datos ampliamente soportado por muchas aplicaciones. Por ejemplo, usted puede visualizar los datos de un archivo CSV proveniente de otro sistema de información utilizando el document VP Import y el documento VP Export. Estos comandos admiten formatos de archivo de texto delimitados como CSV.

 

Gestión de hojas

Por programación, 4D v20 le permite gestionar las hojas de sus documentos 4D View Pro. Puede crear, renombrar, ocultar o eliminar una hoja o simplemente comprobar en qué hoja se encuentra actualmente el usuario utilizando los siguientes comandos:

  • VP SET SHEET COUNT: defina de una sola vez el número de hojas que necesita
  • VP ADD SHEET: insertar una hoja (con un nombre personalizado) a un índice específico.
  • VP SHEET NAME: guíe a sus usuarios dando nombres relevantes a sus hojas
  • VP CURRENT SHEET: cambiar la hoja seleccionada
  • VP SHEET OPTIONS: oculta hojas, por ejemplo, las que sólo contienen información para el cálculo

 

Gestionar los saltos de página DESDE LA IU

Con 4D v20, ahora es posible gestionar los saltos de página desde la interfaz usuario gracias a las nuevas entradas del menú contextual: «Añadir salto de página» y«Eliminar salto de página«. También puede mostrar u ocultar las líneas de impresión utilizando los nuevos comandos VP SET SHOW PRINT LINES y VP Get show print lines.

 

Opciones del libro de trabajo

Cuando crea un documento con 4D View Pro, a menudo necesita ajustar su experiencia usuario ocultando las pestañas de las hojas, las barras de desplazamiento, desactivando el menú contextual o el arrastrar y soltar… Todas estas funcionalidades y muchas más son posibles con el comando VP SET WORKBOOK OPTIONS.

Acelere su proceso de desarrollo con plantillas

La creación de informes u hojas de cálculo a partir de plantillas existentes acelera el desarrollo. Al igual que un usuario final que utiliza la acción Copiar y Pegar, como desarrollador, usted puede, con 4D v20, simplemente «copiar» un rango de celdas de otra ubicación o incluso de otra área. El comando VP MOVE CELLS le permite copiar/cortar y pegar un rango de celdas en otra ubicación, incluso entre dos áreas. Otra forma de copiar un rango es copiarlo en un objeto con el comando VP Copy to object, por ejemplo, para guardarlo en su base de datos, Entonces puede pegar este objeto cuando lo necesite con el comando VP PASTE FROM OBJECT.

 

Interfaz de impresión

Para facilitar a sus clientes la configuración de la impresión, la cinta de opciones cuenta ahora con una nueva adición; admite la configuración de la impresión con una ficha «Diseño de página» y una caja de diálogo «Configuración de la página». Este diálogo incluye pestañas para Página, Márgenes, Encabezado/Pie de página y Hoja, lo que permite a los usuarios gestionar muchas opciones en el comando VP SET PRINT INFO.

 

Llene sus hojas con un contexto de datos

4D View Pro le ofrece una nueva forma de cargar sus datos y de crear sus plantillas: el contexto de datos. Le permite crear su documento con marcadores de posición y rellenarlos configurando este contexto de datos

 

Muestre sus colecciones como tablas

4D View Pro ya le permite cargar y mostrar fácilmente datos en hojas de cálculo. 4D v20 trae una nueva funcionalidad de tablas que le permite hacer mucho más y beneficiarse de propiedades adicionales como los encabezados, redimensionamiento de tablas, línea de resumen, ordenamiento de columnas, filtros y más. Esta funcionalidad le permite también cargar rápidamente datos de clases de datos y colecciones. Salude al nuevo comando VP CREATE TABLE.

 

Gestión de líneas y columnas

4D v20 trae varios comandos nuevos que le permiten administrar las columnas y líneas de su tabla más eficientemente – agregando o quitando columnas/líneas dependiendo de las necesidades de los usuarios finales.

La combinación de esta nueva funcionalidad con los contextos de datos le permite diseñar plantillas más avanzadas para rellenar automáticamente el contenido de negocio con la información correcta para cada situación – ya sean informes, facturas, contratos o cualquier otro tipo de documento.

 

Personalización del estilo de las tablas

Las tablas son una parte integral de los documentos de 4D View Pro. Como tal, hemos proporcionado muchos avances relacionados con las tablas a lo largo de las diferentes versiones. 4D v20 añade una nueva funcionalidad relacionada con el estilo de esas tablas para que encajen perfectamente con el resto de su documento.

A partir de ahora, el VP Set table theme ofrece una forma de aplicar por programación uno de los más de 60 estilos de tabla predefinidos. Si ninguno de estos estilos satisface sus necesidades, puede definir su propio tema y aplicarlo a su tabla.

 

Las versiones R en profundidad