Novedades de 4D v19

Este documento es una recopilación de todas las nuevas funcionalidades disponibles en 4D v19. Tenga en cuenta que cada funcionalidad tiene una entrada de blog relacionada para guiarle a través de ejemplos concretos. Se 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 v18 R6 y 4D v19.

Este documento está dividido en siete secciones:

Soporte Silicon nativo

Tras el innovador anuncio de Apple (los nuevos Macs Silicon), lanzamos 4D v19 seis meses antes de lo previsto para ofrecerle una versión de 4D nativa Silicon lo antes posible. Además de las notables mejoras de rendimiento, estas son las novedades:

 

Como los Macs Silicon ya no utilizan una arquitectura procesador x86 como los Macs y PCs de Intel, no pueden ejecutar el mismo código compilado. Por ello, hemos mejorado nuestro compilador con una compilación específica para Silicon (disponible sólo en modo proyecto). Ahora podrá compilar sus aplicaciones para arquitecturas Intel (Windows e Intel Mac), arquitectura Silicon (Silicon Mac), o ambas arquitecturas.

Plugins 

Los plugins también se verán ligeramente afectados. Para que un plugin funcione tanto en Intel como en Silicon Mac, tendrá que compilarlo como un binario universal. Y si utiliza plugins de terceros, asegúrese de descargar versiones nativas de Silicon o binarios universales.

¿Necesita más tiempo?  

Por supuesto, 4D v19 seguirá funcionando con Rosetta. Si necesita tiempo para que su aplicación funcione de forma nativa, siempre es posible ejecutarla en Rosetta.

Funcionalidades modo proyecto

Los Proyectos, una arquitectura que representa una evolución gigantesca para las aplicaciones 4D, abrieron el mundo 4D a las herramientas de control de fuente, a la programación colaborativa, a la compartición de código, a la modularidad, ¡y a mucho más! Con los proyectos y la capacidad de compartir el código fuente de la aplicación del proyecto a través de un sistema de control de código fuente, hemos publicado más de 45 repositorios para GitHub (al momento de escribir este manual). Esto incluye IDHs, componentes y aplicaciones de ejemplo completas. 

Y con 4D v19, todo un nuevo conjunto de funcionalidades que mejorarán enormemente su experiencia de programación.

Gracias al modo proyecto, hemos introducido las clases. Una clase le permite definir el comportamiento de un objeto mediante propiedades y funciones. Una vez definida una clase, puedes instanciar objetos de esta clase en cualquier parte de su código. Cada objeto es una instancia de su clase. Las clases pueden extender otras clases y heredar sus funciones.

Hay dos tipos de clases disponibles en 4D: las clases integradas de 4D (devueltas por el comando 4D) y las clases de usuario (devueltas por el comando cs).

Para crear un objeto como instancia de una clase, utilice el comando cs con la función miembro new. Otro término importante a conocer es el constructor. El constructor se utiliza para crear e instanciar un objeto con atributos por defecto. Se llama automáticamente cuando se inicializa un objeto. La creación de una clase se realiza desde el menú “Nuevo” de la barra de herramientas, o desde el diálogo “Explorador”. Aparecerá un editor de clases en el que podrá crear el constructor y las funciones de la clase. Leer la documentación

 

Herencia de clase 

La herencia permite que una clase herede el comportamiento de otra clase (la clase padre). Para heredar de una clase de usuario a otra, utilice la palabra clave Class extends, y se llamará automáticamente al constructor de la clase padre (si no ha definido un constructor específico para la clase hijo). También puede utilizar el comando Super para llamar al constructor de la clase padre. Leer la documentación

Nombrar parámetros para métodos y funciones 

No es necesario pasar por una variable intermedia, ahora puede nombrar sus parámetros y resultados al declarar un:

  • método proyecto,
  • trigger,
  • método base de datos,
  • método formulario,
  • constructor clase,
  • función de clase. Leer la documentación

 

Vista previa de CSS en el editor de formularios 

Esta funcionalidad fue la petición más votada y la más rápidamente votada en nuestro foro de peticiones de funcionalidades. Permite previsualizar el renderizado final del CSS en el editor de formularios. Para ello, hay un nuevo icono en la barra de herramientas que le permite ver su formulario con o sin el renderizado CSS, incluso mostrando cómo se vería con un renderizado CSS específico en Mac o Windows. En cuanto a la anulación de propiedades en el modo CSS, se muestra un nuevo tipo de escudo (similar a los escudos para el Método objeto u Orden de entrada) en el editor de formularios. Ahora es fácil ver qué objetos son impactados por un CSS. Leer la documentación

 

Desarrollo de código del servidor  

El desarrollo y la depuración del código del servidor en las aplicaciones del proyecto es más fácil. En el modo de desarrollo en equipo, con varios desarrolladores utilizando el desarrollo de un solo usuario y confirmando sus cambios en un sistema de control de versiones, RELOAD PROJECT en combinación con comandos como git pull permite actualizar un servidor en ejecución con nuevo código sin necesidad de reiniciar para pruebas o incluso en modo de producción.

Cuando un cliente 4D Developer se conecta a un 4D Server en el mismo ordenador, el archivo .4DZ no se transfiere del servidor al cliente. 4D Remote gestiona los archivos del proyecto (métodos, formularios, recursos, etc.) como si fuera un cliente 4D monopuesto. Los archivos del proyecto son compartidos por 4D Server y 4D Remote. De esta forma, puede modificar su código y probarlo sobre la marcha.

Si quiere que el servidor recargue los archivos modificados, pase del entorno de desarrollo al modo de aplicación, mueva el 4D Server al primer plano o seleccione la opción de menú “Archivo/ Guardar todo” en el 4D Remote (o utilice el nuevo comando RELOAD PROJECT).

Recuerde que la ejecución de un método del lado del cliente realiza automáticamente una acción de “Guardar todo”, y como resultado, recarga los archivos modificados del lado del servidor. Leer la documentación

 

Macros 

Las macros están ahora disponibles en el editor de formularios. Con una macro de formulario, puede:

  • Modificar, eliminar o añadir una propiedad a uno o más objetos de formulario, como cambiar el color o el ancho de un botón
  • Añadir o eliminar uno o más objetos de formulario (incluyendo su método de objeto asociado)
  • Seleccionar o deseleccionar objetos de formulario en el editor
  • Mostrar un diálogo modal para introducir un parámetro sobre la marcha
  • Calcular la posición ideal de los objetos de formulario y moverlos
  • Crear una clase CSS a partir de un objeto de formulario para utilizarla como plantilla
  • Comprobar que las rutas de las imágenes del formulario son válidas
  • Abrir los archivos CSS en el editor de CSS en lugar de buscarlos en el disco
  • Comprobar que las referencias XLIFF tienen su correspondencia en los archivos XLIFF
  • y mucho más.

Las macros del formulario están disponibles en el menú contextual. Las macros de la base de datos local se muestran primero, seguidas de las macros de los componentes. Para ejecutar una macro, basta con hacer clic en el elemento del menú. Para crear macros de formulario, simplemente declárelas en un archivo formMacros.json en el primer nivel de la carpeta Sources de su proyecto. Asegúrese de consultar algunos ejemplos de macros que hemos puesto a disposición en GitHub y que puede integrar en sus aplicaciones como componentes para probarlas. Leer la documentación

Documentación de métodos

Puede escribir su propia documentación para los métodos base, trigger, proyecto y formulario tabla. La documentación se guarda en un archivo Markdown con el mismo nombre que el método o formulario en una carpeta de documentación. Markdown es un formato estándar para la documentación y permite mejorar los estilos de formato. El formato puede ser mostrado en 4D Explorer, en GitHub, o en otras herramientas. La documentación puede contener una descripción de un elemento, así como cualquier información necesaria para entender cómo funciona el elemento en la base de datos. Para crear o editar el archivo de documentación en la base de datos de un proyecto, desde el Explorador haga clic en el botón “Crear” o seleccione la opción de menú “Editar documentación”. 4D crea el archivo correspondiente y lo abre en su editor por defecto con una plantilla preestablecida. Leer la documentación

4D ofrece tres temas de fuentes automáticas que respetan las pautas de cada plataforma. 4D v19 le permite anular el tamaño de estos temas automáticos y tener más control sobre cómo se muestra su texto. Leer la documentación

 

4D for iOS 

 

El conjunto de funcionalidades de 4D for iOS se ha ampliado con 4D v19:

 

Trabajar sin conexión blank

Usted tiene la posibilidad de trabajar sin conexión e interactuar con su servidor 4D de una manera muy flexible.

Cuando no hay red disponible, sus tareas se ponen en cola, esperando que el servidor esté disponible. Esto le garantiza una forma muy fluida y eficiente de trabajar con aplicaciones que funcionan constantemente sin ningún retraso. Leer la documentación

 

Deep linking

Deep linking le permite compartir una URL, por ejemplo en un correo electrónico. Al hacer clic en la URL se abrirá directamente un registro específico en una aplicación 4D for iOS. En combinación con las notificaciones push, puede informar a los vendedores sobre un nuevo presupuesto o a los agentes de seguros sobre un nuevo caso. Un solo clic abre directamente la aplicación y muestra el registro correspondiente. Leer la documentación

 

Notificaciones Push 

Las notificaciones Push son una forma perfecta de mantener a los usuarios de su aplicación iOS comprometidos e informados.

Puede configurar las notificaciones push para activar la sincronización en los dispositivos iOS. Esto permite que la interfaz de usuario se actualice al instante, ofreciendo a los usuarios datos en tiempo real que pueden comprobar al recibir una notificación. Leer la documentación

 

Nuevos formatos de parámetros: firma y código de barras

Para ayudar a que sus aplicaciones sean más interactivas, se han añadido nuevos formatos de parámetros a 4D for iOS:

  • Formato de firma: firme con la punta del dedo y envíe las firmas directamente desde su app al servidor. Esto podría ser útil para recoger las firmas de los clientes después de la entrega de un paquete, por ejemplo.
  • Formato de código de barras: asocie todo valor a un código de barras (EAN13, EAN8, código QR, etc.) para extraerlo con sólo escanearlo desde un formulario de acción. Es una forma muy cómoda de añadir, por ejemplo, una referencia de artículo escaneando un código QR directamente desde su aplicación. Leer la documentación

 

Mejora de la experiencia del usuario con relaciones Muchos a Muchos

Puedes acceder y publicar relaciones Uno a Muchos desde tus relaciones Muchos a Uno en la sección de Estructura. En resumen, esto significa que puede mostrar relaciones Muchos a Muchos, lo que le permite ofrecer aplicaciones iOS con una ergonomía mejor que nunca. Esto viene con características adicionales como añadir interacciones a un campo soltando una relación sobre él y mostrando el número de registro correspondiente al hacer clic en las relaciones Uno a Muchos. Leer la documentación

 

Soporte para escanear códigos de barras

La búsqueda ha mejorado mucho gracias a la incorporación del soporte de escaneo de códigos de barras. Esto hace posible que las aplicaciones se adapten a situaciones de campo (por ejemplo, para las necesidades de inventario de los almacenes).

Más técnicamente, esta funcionalidad permite:

  • Filtrar un formulario de lista en función del valor del código. Si un registro coincide con el valor del código de barras, se abrirá directamente el formulario de detalle del registro.
  • Si se combina con deep linking, podrá mostrar formularios listado y detallado específicos con sólo escanear un código de barras cuyos valores sean esquemas de URL o enlaces universales. Leer la documentación

Iniciar sesión con QRCode blank

4D for iOS ofrece una nueva y moderna forma de iniciar sesión. Esto se hace con la plantilla de formulario de inicio de sesión SignInWithQRCode que permite a los usuarios de la aplicación iniciar sesión escaneando QRCode y conceder acceso a los usuarios que ya han sido autenticados. Leer la documentación

 

Sincronización de datos optimizada 

El proceso de sincronización de datos de 4D for iOS ha sido optimizado, ofreciéndole una sincronización de datos hasta 25 veces más rápida. Leer la documentación

 

Autenticación del correo electrónico

4D for iOS le permite determinar fácilmente la autenticidad y legitimidad de la persona que intenta iniciar sesión en su aplicación, verificando que un correo electrónico proviene de quien dice ser enviado. Básicamente, el proceso actualiza el estado de la sesión de un usuario para darle acceso a la aplicación:

  • Cuando un usuario introduce su dirección de correo electrónico en el formulario de inicio de sesión y hace clic en el botón de inicio de sesión, su estado de sesión se actualiza al estado “pendiente”.
  • A continuación, se envía un correo electrónico de validación al usuario, que sólo tendrá que hacer clic en el enlace de validación para actualizar su estado de sesión de “pendiente” a “aceptado”.
  • Una vez completado el proceso de validación, el usuario puede volver a abrir la aplicación y, dado que su estado de sesión es “aceptado”, se le concede el acceso.

El componente que gestiona y facilita el proceso también está disponible para que pueda adaptar la autenticación a sus propias necesidades. Leer la documentación

 

Construir plantillas de formularios detallados

Puede colocar tantos campos como quiera en su plantilla de formulario detallado porque son desplazables. Hay muchas maneras de añadir sus campos a sus formularios detallados:

  • Seleccione una plantilla en blanco en la que pueda soltar todos sus campos sin ninguna restricción, o,
  • Arrastre y suelte los campos en cualquier lugar de la vista para añadirlos y mostrarlos inmediatamente después del último campo añadido o entre otros campos ya mostrados, o,
  • Haga doble clic en un campo. Su campo se añadirá al final de la lista, o,
  • Haga clic derecho en uno de los campos disponibles en la tabla de Campos de la izquierda. Esto mostrará un menú que le permite añadir cualquier campo que falte a sus formularios Detallado. Leer la documentación

 

Plantillas listas para usar

Tiene a su disposición más de 40 plantillas listas para usar, accesibles desde el editor de proyectos. La galería se basa en una lista dinámica de plantillas actualizadas disponibles en GitHub. Para utilizar una plantilla, hay un icono “Más” disponible tanto para los formularios listado como para los detallado que mostrará toda la lista de plantillas de la sección Formularios. Seleccione la plantilla y 4D for iOS se encargará de la instalación. Como paso final, puede mejorarla para adaptarla a sus necesidades. Leer la documentación

ORDA

4D v19 sigue aportando mejoras a ORDA. Además de las diversas funcionalidades (ver más abajo), ORDA hace posible que usted cree funciones de clase de alto nivel por encima del modelo de datos. Esto le permite escribir código orientado al negocio para ocultar la complejidad, reducir los errores y acelerar el proceso de desarrollo. Además, puedes exponer su proyecto como una API con un servidor REST.

Clases ORDA para manejar el modelo de datos 

La estructura de ORDA (almacén de datos, clase de datos, entidad, selección de entidad) se compone de objetos fuertemente tipados vinculados a clases específicas de ORDA. Esto significa que puede escribir funciones que ocultan la complejidad de la implementación física de sus datos.  

4D crea automáticamente:

  • Clase de entidad: para implementar funciones relacionadas con una entidad (por ejemplo para calcular los costos de envío para la cotización actual. Código asignado a un registro determinado).
  • Clase EntitySelection: para implementar funciones relacionadas con una selección de entidades (por ejemplo para ejecutar una estadística sobre los registros seleccionados. Código asignado a una selección)
  • Clase DataClass: para implementar funciones relacionadas con la clase de datos (para ejecutar código relacionado con una tabla, pero independiente de un registro o selección específica. Por ejemplo, para crear un nuevo registro basado en los parámetros proporcionados)
  • DataStore: para implementar funciones relacionadas con el datastore (para ejecutar código no relacionado con una tabla o registro, similar a un método genérico del proyecto). Leer la documentación

Clases del modelo de datos ORDA y REST 

Puede llamar a las funciones de las clases definidas para el modelo de datos ORDA a través de peticiones REST para beneficiarse de la API expuesta del proyecto de aplicación 4D al que va dirigido. Exponga su lógica de negocio con una API controlada (a través de sus clases) para otras herramientas, como los frameworks web como Angular o React. Leer la documentación 

 

Alcance y contexto de ejecución de las funciones 

Por defecto en el modo cliente/servidor, las funciones de las clases ORDA se ejecutan en el servidor. Ahora puede elegir ejecutar algunas funciones en el cliente gracias a una nueva palabra clave: local. Además, tiene el poder de elegir qué funciones publicar (o no) como APIs para clientes REST con la nueva palabra clave: exposed. Leer la documentación

 

Bucle con una nueva etiqueta 4D blank

Ya está disponible una nueva etiqueta 4D: la etiqueta 4DEACH. Puede utilizarse como etiqueta 4D en páginas SHTML, así como con el comando PROCESS 4D TAGS.

Hace que el uso de ORDA u objeto en PROCESS 4D TAGS o SHTML sea drásticamente sencillo. Leer la documentación

 

Actualización del modelo

Si trabaja en modo 4D monopuesto ya no es necesario reiniciar la base para tener un datastore actualizado cuando se actualiza la estructura.

Si trabaja en modo cliente/servidor, esto funciona bien para el código que se ejecuta en el servidor 4D. Para los clientes remotos, basta con reiniciar el cliente que requiere la actualización de la estructura. Leer la documentación

 

 Selecciones de entidades compartibles

A veces puede querer compartir una selección de entidades con otro proceso o ponerla a disposición de todos los procesos. Por ejemplo, imagine que está realizando una consulta compleja para encontrar todas las facturas vencidas, permitir a los usuarios finales seleccionar algunas (o todas) y enviar un recordatorio de pago por correo electrónico. El envío de correos electrónicos se realiza mejor en otro proceso para evitar el bloqueo del usuario. En lugar de construir una lista de llaves primarias para pasarla al otro proceso, una selección de entidades compartida puede pasarse directamente a otro proceso. Las selecciones de entidades compartidas pueden incluso adjuntarse al objeto Storage para ser compartidas con todos los procesos.

En pocas palabras, una selección de entidades puede ser compartible o no:

  • Una selección de entidades compartible puede ser almacenada en un objeto compartido o en una colección compartida y puede ser compartida entre varios procesos o workers. No permite añadir nuevas entidades. Si se intenta añadir una entidad a una selección de entidades compartibles, se producirá un error.
  • Una selección de entidades no compartibles no puede ser compartida entre procesos, ni puede ser almacenada en un objeto o colección compartida. Si se intenta almacenar una selección de entidades no compartibles en un objeto o colección compartida, se producirá un error. Sin embargo, una selección de entidades no compartibles acepta la adición de nuevas entidades. Leer la documentación

Nuevos métodos de selección de entidades

Hay nuevos métodos miembros a su disposición:

  • extract(): para extraer datos de una selección de entidades. Esto le permite construir una colección totalmente personalizada con los datos de su selección de entidades. Puede especificar los atributos de la clase de datos que desea extraer y sus nombres en la colección resultante.
  • refresh(): invalida los datos de la selección de entidades en la caché ORDA. Provoca una actualización desde el servidor la próxima vez que se utilicen los datos. Por defecto la caché de ORDA expira después de 30 segundos, así que utilice este método miembro en caso de que necesite datos actualizados inmediatamente. Leer la documentación

Lenguaje 4D y otras funcionalidades de programación

Soporte para el Modo Oscuro en macOS blank

4D ha añadido soporte para el Modo Oscuro, que se aplica automáticamente si la preferencia de Modo Oscuro se establece a nivel de macOS. Esto es sólo el principio y se lanzarán más en futuras versiones, como el soporte en todos los componentes (por ejemplo, el widget 4D Write Pro), el modo Diseño y, por supuesto, en Windows. Leer la documentación

 

Múltiples temas para el editor de código blank

4D le ofrece temas básicos que puede enriquecer y adaptar a su propio gusto:

  •  “tema claro por defecto” (basado en el editor de color clásico)
  •  “tema oscuro por defecto” (nuevo color)

Si prefiere los colores elegidos por su colega o si encontró un tema más a su gusto en GitHub por ejemplo, no se preocupe, usted utiliza este tema añadiendo el archivo JSON del tema en:

  • “<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme” en macOS
  • o “<diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme” en Windows. Leer la documentación

 

 

En los sistemas de integración continua, cada vez que se envía código, o cada hora, se lanza automáticamente una compilación del código fuente. Este enfoque le permite comprobar las fusiones en el servidor de gestión de código. A partir de 4D v19, el nuevo comando Compile Project permite lanzar la compilación del código, para que pueda configurar este tipo de sistema. Leer la documentación

 

Gestione la información de su aplicación blank

Para construir su aplicación, usted utiliza el comando BUILD APPLICATION con un conjunto de llaves XML que le permiten configurar la aplicación construida. Después del proceso de construcción, es posible añadir información como la compañía, el copyright o la versión de la aplicación. A partir de 4D v19, se puede leer, añadir o modificar en plataformas Windows o macOS sin necesidad de dominar el lenguaje XML y la estructura del archivo info.plist.

Para ello, hemos añadido dos nuevas funciones a la clase File que permiten leer y escribir la información de la aplicación:

  • Para añadir la información a un archivo .exe (Windows) o .plist (macOS), puede pasar un objeto con los atributos que quiera definir para la función setAppInfo.
  • Para leer la información de un archivo .exe o .plist, simplemente utilice getAppInfo, y obtendrá todos los atributos en un solo objeto. Leer la documentación

 

Simplificar la creación del 4D Archive Client blank

A partir de macOS Big Sur, las aplicaciones no firmadas no pueden ejecutarse. En el pasado, lanzamos una solución para construir aplicaciones cliente-servidor que se ejecutan en un servidor Windows y aceptan conexiones de clientes Mac. Con el lanzamiento de 4D v19, hemos actualizado la construcción de aplicaciones en 4D para manejar este escenario.

 

Evolución del formato de historial 4D blank

Recientemente hemos revisado nuestros formatos de historial para mejorar la legibilidad y el cumplimiento del análisis automatizado. Hemos realizado estas mejoras en respuesta a situaciones reales que hemos experimentado, abordando directamente los problemas que limitaban nuestra capacidad de utilizar los historiales 4D. Leer la documentación.

 

Utilizar colecciones y listas dentro de los objetos de los formularios blank

A partir de 4D v19, puede utilizar colecciones para definir el contenido de algunos objetos de interfaz, incluso utilizando la función Formulario. Esto es muy útil para la gestión genérica de interfaces. También hemos añadido mejoras en el uso de las listas.

Se ha mejorado el uso de las listas:
Listas jerárquicas
Controles de pestañas (primer caso de uso)

Las colecciones ahora se pueden utilizar como referencias con los siguientes objetos:
– Listas desplegables (también conocidas como “listas emergentes”)
Combo boxes
– Controles de pestañas (segundo caso de uso). Leer la documentación

Nueva sintaxis de declaración

Ya está disponible una nueva sintaxis para declarar las variables. Utiliza la palabra clave var, el nombre de la variable y su tipo. La nueva sintaxis permite mejorar en gran medida el autocompletado al declarar las variables. Puede declarar variables utilizando tanto la sintaxis clásica como la nueva en la misma base de datos. Leer la documentación

 

Visualización del prototipo y descripción corta

Para simplificar y facilitar la escritura de código en el editor, el prototipo de una función y una breve descripción se muestran en el editor de código.

La lista de sugerencias muestra la finalización inteligente del código (con una breve descripción) y el prototipo para que pueda escribir el código de forma más rápida y correcta. Y mientras escribe su función, 4D muestra el prototipo de la función y una breve descripción de la misma. También resalta el parámetro que está completando en ese momento. Leer la documentación

 

Emails 

Soporte OAuth 2.0

OAuth 2.0 es un estándar de autenticación y autorización que protege los datos de los usuarios ofreciendo acceso a los mismos sin revelar su identidad o sus credenciales. Últimamente, los servidores de correo electrónico han empezado a adoptar este estándar para aumentar la seguridad. Office365 y Gmail recomiendan el uso de OAUTH2 para manejar los correos electrónicos.

A partir de 4D v19, estamos ofreciendo una manera de definir el modo de autenticación OAuth 2.0 para una conexión. Los transportadores IMAP, SMTP y POP3 ahora soportan nativamente el protocolo OAuth 2.0. Leer la documentación

 

Gestionar las banderas IMAP

El protocolo IMAP permite asociar una lista de banderas a un mensaje para gestionar información adicional. Hemos añadido un conjunto de funciones al objeto transportador IMAP para añadir o eliminar banderas IMAP.

Con el protocolo IMAP puedes gestionar cinco banderas:

  • \Visto: el mensaje ha sido leído.
  • \Respondido: el mensaje ha sido respondido.
  • \Marcado: el mensaje está marcado como “marcado” para atención urgente/especial.
  • \Borrado: el mensaje está marcado como “a borrar”. La eliminación tiene efecto cuando se llama a la función expunge(), se cambia de buzón o se cierra la conexión. Esta bandera ya es añadida por la función delete()
  • \Borrador: el mensaje no ha completado su composición (marcado como borrador). Leer la documentación 

 

Crear, eliminar y renombrar buzones con IMAP blank

Hay funciones disponibles para ayudarle a gestionar sus buzones de correo por programación. Esto incluye la creación, el cambio de nombre y la eliminación de buzones. Un buzón se muestra como una carpeta en clientes de correo electrónico como Microsoft Outlook o Apple Mail. Leer la documentación

 

Guardar los correos electrónicos en un buzón específico

En caso de que sus clientes esperen obtener una copia en el buzón de “Enviados” que muestra Outlook o Apple Mail al enviar correos electrónicos desde 4D, 4D v19 tiene la respuesta. Para guardar una copia de su correo electrónico después de enviarlo:

  • Primero, cree dos transportadores: un transportador SMTP para enviar el email a su cliente, y un transportador IMAP para cargar su email en su servidor de correo.
  • Después de enviar su correo electrónico con SMTP, utilice la función append() del transportador IMAP. Leer la documentación

Buscar y descargar correos electrónicos

La búsqueda permite recuperar una lista de mensajes basada en criterios como todos los correos no leídos o todos los correos de una persona específica en las últimas 4 semanas. El comando devuelve una colección de IDs de correos, que pueden ser utilizados directamente por el nuevo método getMails para descargarlos.  Leer la documentación

 

Copiar, mover y eliminar correos electrónicos

Se han añadido tres nuevas funcionalidades al transportador IMAP: copy()move() y delete(). Leer la documentación

 

Recibir correos electrónicos utilizando POP3

Puede descargar localmente sus correos electrónicos y eliminarlos de su servidor de correo electrónico a través de POP3 gracias al nuevo comando POP3 New transporter. El Post Office Protocol (POP) es un protocolo estándar de Internet para recuperar el correo electrónico de un servidor de correo. Este estándar es útil para acciones como conectarse a un servidor POP3, recuperar mensajes para procesarlos automáticamente (para almacenarlos en su base de datos local) y eliminarlos del servidor. Además, se han añadido varios métodos que permiten manejar los correos electrónicos:

  • getMailInfoList(): devuelve información sobre todos los mensajes de su buzón.
  • getMailInfo(): devuelve información sobre un solo mensaje.
  • getMail(): permite descargar mensajes específicos pasando como parámetro un número de mensaje devuelto por getMailInfoList().
  • delete(): marca los mensajes especificados para que sean borrados durante el cierre de la sesión.
  • getBoxInfo(): devuelve el número de correos electrónicos en el buzón y el tamaño del mismo. Leer la documentación

 

Recibir correos electrónicos utilizando IMAP

Al igual que hicimos para SMTP y POP3, hay un nuevo comando IMAP New transporter para manejar el protocolo IMAP. Hemos añadido comandos para elegir un buzón y para descargar un correo electrónico. Leer la documentación

 

Descargar correos electrónicos en formato MIME

4D v19 ofrece un comando que le permite almacenar los correos electrónicos en su formato original, sin convertir, recibido. Utilizando el método POP3_transporter.getMIMEAsBlob( ), puede obtener un BLOB que contiene el contenido MIME de un mensaje específico, que puede ser guardado en su base de datos o en algún otro lugar. Leer la documentación

 

Cifre sus propios datos con el algoritmo 4D blank

4D le ofrece una forma sencilla, pero poderosa, de encriptar sus datos. Ahora, también le permite utilizar el mismo algoritmo que se utiliza para el cifrado de datos (AES-256) para sus propias necesidades. Así que ahora puede encriptar y desencriptar cualquier información que quiera con un conjunto de nuevos comandos: Encrypt data BLOB y Decrypt data BLOB. Leer la documentación

 

Nueva clase CryptoKey 

Ya está disponible una nueva clase que ofrece un conjunto de métodos para realizar operaciones criptográficas comunes (como la firma y la verificación, el cifrado y el descifrado): clase CryptoKey. Proporciona una forma de proteger la confidencialidad de sus datos, así como de verificar la integridad de los mensajes, y la autenticidad del remitente. Se puede utilizar para:

  • Confidencialidad: proteger los datos de acceso no autorizado
  • Integridad: garantizar que los datos estén completos y correctos
  • Autenticidad: validar la autenticidad del remitente/destinatario de un mensaje. Leer la documentación

 

Web 

Sesiones web escalables

4D Web Server ofrece un nuevo tipo de sesión web que mejorará considerablemente el rendimiento de sus aplicaciones web: la sesión web escalable.

Las sesiones web escalables son capaces de manejar varios procesos en modo apropiativo. Esto significa que pueden manejar varias peticiones del agente de usuario al mismo tiempo, y también pueden compartir datos entre estos procesos. Leer la documentación

 

Atributos SameSite y Secure para cookies blank

Las capacidades de las cookies han crecido y evolucionado a lo largo de los años, pero han dejado algunos problemas heredados. Para manejar esto, los navegadores (incluyendo Safari, Chrome, Firefox y Edge) están cambiando su comportamiento con respecto a los atributos SameSite y Secure para un modelo seguro por defecto para las cookies. Para ello 4D v19 está trayendo algunas mejoras. Leer la documentación

 

Soporte para compartir recursos Cross-origin (CORS)

El protocolo CORS impide que una página web realice peticiones a otros dominios que no sean el suyo. Sin embargo, si necesita permitir que otros sitios hagan peticiones HTTP a su servidor para obtener o enviar algún dato… ahora puede vía:

  • programación: gracias a los comandos WEB SET OPTION y WEB Server.  Toman parámetros de dominio para permitir acciones específicas (GET, POST, HEAD, PUT) 
  • la configuración de la base: gracias a las opciones disponibles en la ventana Configuración> Web > Opciones (II)Leer la documentación

 

Explorador de Datos (Vista previa)

4D v18 R9 ofrece una versión preliminar de 4D Data Explorer. Los desarrolladores o administradores 4D pueden ahora explorar fácilmente los datos de sus aplicaciones en un navegador web sin necesidad de una licencia de servidor web. Vea este video para ver el producto en acción.

 

Carpeta caché 4D personalizada para 4D Server fusionado 

Si su máquina aloja una aplicación de servidor fusionado construida con diferentes versiones de 4D, puede tener problemas debido a la carpeta de estructura 4D compartida. Para evitar compartir esta carpeta de sistema entre aplicaciones de servidor fusionado construidas con diferentes versiones de 4D, ahora puede definir el nombre de la carpeta durante el proceso de construcción de la aplicación con la nueva llave buildApp para definir su propia carpeta de estructura. Leer la documentación

 

Carpeta de caché 4D personalizada para clientes 4D fusionados 

Conectar su aplicación remota a varios servidores puede a veces resultar en la obtención de una gran carpeta de recursos locales en el sistema que puede consumir tiempo, volumen y red. Ahora tiene la posibilidad de compartir la misma carpeta de recursos locales entre todos los servidores idénticos con la nueva llave buildApp para compartir la carpeta de recursos locales. Leer la documentación

 

Integración del historial mejorada 

Cuando se ejecuta un 4D Server en producción, todo debe ser completamente automático sin requerir un administrador. Esto es especialmente importante con la actualización automática y el funcionamiento en modo Headless. Después de una pérdida de energía o una caída, los errores menores en el historial podrían detener un 4D Server reiniciado automáticamente. Una nueva opción permite ahora suprimir los mensajes de error no críticos (pero seguir informando de ellos en un diario), reduciendo el tiempo de inactividad del sistema. Leer la documentación

 

Otorgar dinámicamente permisos de usuario

Tras la posibilidad de utilizar su propio sistema de gestión de usuarios finales y el comando SET USER ALIAS, hemos añadido la posibilidad de gestionar los permisos de los usuarios finales. El nuevo comando SET GROUP ACCESS le permite establecer dinámicamente la pertenencia a grupos. Leer la documentación

 

Almacenar los alias de usuario en el historial

El comportamiento del comando SET USER ALIAS se ha ampliado en 4D v19 al permitirle saber quién hizo qué. Ahora, cuando se define un alias, también se almacena en el historial. Esto le permite recuperar el usuario correcto, incluso si varios usuarios comparten el mismo ordenador y/o cuenta del sistema. El nombre del usuario se muestra en:

  • las pestañas de análisis de actividad y de reversión del MSC,
  • el diálogo que se muestra con el comando CHECK LOG FILE,
  • y en el archivo JSON generado por LOG FILE TO JSON. Leer la documentación

 

Supervisar las operaciones lentas 

Para descubrir qué operaciones están causando que un servidor sea lento, 4D v19 ofrece un nuevo comando: START MONITORING ACTIVITY. Registra las operaciones que superan una duración determinada utilizando dos parámetros: la duración y la operación a monitorizar. Basado en las especificaciones definidas por este comando, también puede obtener todas las actividades registradas con el comando Get Monitored Activity(). Una vez decida dejar de grabar la actividad de su aplicación 4D o vaciar la lista de actividades, llame al comando STOP MONITORING ACTIVITY. Leer la documentación

 

Listbox

Gestionar los clics en las celdas editadas 

El evento on clicked form se dispara tanto si una celda está siendo editada como si no, lo que le brinda un mayor control y mejora la interfaz. Esto puede ser útil, por ejemplo, si quiere mostrar posibles valores mediante un menú contextual para una celda cuando se está editando. Una vez seleccionada la fila, puedes ofrecer una opción de color para esa fila o celda en particular.

En cuanto a la compatibilidad, si ya tiene código que se ejecuta durante el evento on clicked, puede querer detener la ejecución de ese código cuando se produce un clic dentro de una celda editada. En este caso, simplemente pruebe el estado de esta celda con la función is editing text por adelantado. Leer la documentación

Cálculos de columnas de tiempos y de pies de páginas blank

Aunque los nuevos list boxes que utilizan colecciones o selecciones de entidades son más poderosos en muchos aspectos, hasta ahora tenían una limitación en comparación con los list boxes que muestran arrays o registros: la visualización de la hora y especialmente los cálculos automáticos en el pie de página.

A partir de ahora todos los tipos de list boxes pueden mostrar las horas en sus columnas, pero también tienen la posibilidad de mostrar cálculos en su pie de página. Leer la documentación 

 

Mejora del tecleo predictivo

Normalmente, un list box sólo recibe eventos de pulsación de teclas en modo edición. Sin embargo, esto impide que se utilice para filtrar automáticamente la lista o para seleccionar una entrada cuando un usuario está utilizando el teclado y un list box no editable.

Ahora, el evento On before Keystroke se genera tan pronto como el list box tiene el foco y se digita una tecla, incluso si no se están introduciendo datos en una celda. Esto permite a 4D saber qué teclas se han pulsado y hace posible (por programación) tomar decisiones como iniciar una nueva búsqueda o cambiar la selección actual.

Se ha añadido el nuevo comando Is editing text para ayudar a determinar si hay una entrada en curso cuando se genera el evento On before keystroke. Por ejemplo, permite que un list box sea editable, y sigue siendo compatible con las funciones de escritura anticipada. Los eventos On before keystroke y On after keystroke ahorasoportan diálogos de ayuda del sistema para seleccionar diacríticos como é, ä o caracteres asiáticos. El evento se retrasa hasta que el usuario final selecciona los últimos caracteres. No hay necesidad de manejar esto usted mismo. Leer la documentación

 

Funcionalidades Pro Listbox gratuitas

Ya no es necesario tener una licencia de 4D View Pro para utilizar funcionalidades avanzadas como los list boxes. Ahora son gratuitas. No hay nada que le impida aprovechar los list boxes que pueden:

  • adaptar automáticamente la altura de cada fila a su contenido (para poder mostrar todo el texto o la imagen),
  • utilizar arrays objeto en las columnas (para poder introducir y mostrar varios tipos de valores en las filas de una misma columna del  list box).

 

Configurar filas movibles por código

En el caso de los list boxes basados en arrays, puede definir (en el modo Diseño) si los usuarios finales pueden mover las filas (por ejemplo, para reordenar o agrupar filas, etc.). Los comandos LISTBOX SET PROPERTY y LISTBOX Get property han sido actualizados para soportar una nueva propiedad: lk movable rows. Leer la documentación 

Selección de filas en listbox

4D v19 ofrece un nuevo comando que facilita la selección de filas en una selección de entidades: LISTBOX SELECT ROWS. Acepta una selección de entidades como parámetro y las filas que coinciden con la selección de entidades pueden ser seleccionadas intuitivamente (incluyendo las filas añadidas o eliminadas de la selección). Y para los list boxes colección, se puede pasar una colección que contenga las referencias de los objetos que se quieren seleccionar. Leer la documentación

 

Tome el control del área de trabajo 

Los elementos gráficos del sistema, como el dock de macOS o la barra de tareas de Windows, se tienen en cuenta para que pueda utilizar toda el área de trabajo disponible. Se ha añadido un parámetro opcional al comando SCREEN COORDINATESScreen work area. De esta manera, puede estar seguro de que las ventanas de su aplicación están en un área visible (especialmente en el modo SDI en Windows). Leer la documentación

 

XML: soporte mejorado de XPath

A partir de 4D v19, la implementación de XPath es más compatible y simplifica sus búsquedas al permitir el soporte de expresiones como //, @, * y last(). Por razones de compatibilidad, la implementación anterior, no estándar, se mantiene por defecto en las bases de datos convertidas. Para aprovechar las funciones ampliadas en sus bases de datos convertidas, seleccione la opción de compatibilidad Utilizar XPath estándar en la página Compatibilidad. Leer la documentación

 

Mejora de objetos y colecciones

El comando OB Copy() y el método miembro collection.copy() han sido mejorados. Ahora ofrecen la posibilidad de añadir un objeto estándar en un objeto compartido o en una colección para evitar código complejo para copiar el contenido del objeto estándar en el objeto compartido o en la colección. Además, están disponibles nuevos comandos para manejar objetos como mapas hash:

  • OB Keys: devuelve los nombres de las propiedades de un objeto como una colección.
  • OB Values: devuelve los valores de las propiedades de un objeto como una colección
  • OB Entries: devuelve una colección de objetos con propiedades llave (nombre de la propiedad) y valores (valor de la propiedad). Leer la documentación

Crear un área web fuera de pantalla

4D v19 le permite utilizar un área web en modo offscreen con el comando WA Run offscreen area. Crea un área web en la memoria y toma, en parámetro, toda la información pertinente para el área web como:

  • La URL a cargar
  • El nombre del área
  • La fórmula llamada cuando un evento es lanzado por el área web

Y para simplificar la depuración de un área web fuera de la pantalla, se ha añadido un nuevo comando: WA OPEN WEB INSPECTOR. Abre el inspector web y permite verificar si la página se carga correctamente o si su código JavaScript arroja errores. Leer la documentación

 

Acceso a los valores de los objetos del formulario por programación

Dos nuevos comandos están disponibles para ayudarle a acceder a los valores de los objetos del formulario, independientemente de su variable o expresión: OBJECT Get valueOBJECT SET VALUE. Para obtener el valor de un objeto de formulario, utilice el comando OBJECT Get value y pase el nombre de su objeto de formulario como parámetro. Del mismo modo, si necesitas establecer el valor de un objeto de formulario, utilice el comando OBJECT SET VALUE y pase el nombre y el nuevo valor como parámetros. Leer la documentación

4D ofrece herramientas muy versátiles para la búsqueda y comparación de cadenas que pueden ser adaptadas a los contextos y situaciones encontradas por los desarrolladores.

Con 4D v19, se han realizado actualizaciones en el comando Position y se ha añadido el nuevo comando Compare strings:

  • Position: este comando tiene ahora más capacidades de comparación como “sensible a las mayúsculas y minúsculas” o “sensible a los acentos”, el idioma japonés (Hiragana/Katagana), y el ancho de los caracteres también están disponibles como opciones de búsqueda, junto con “palabra completa”. 
  • Compare strings: este nuevo comando permite comparar cadenas con las mismas opciones que las añadidas al comando Position. Este comando se basa en el idioma definido en la configuración de la base de datos. Esto puede ser muy útil para permitir, por ejemplo, clasificaciones específicas. Leer la documentación

 

Mejoras en el depurador 4D

4D v19 incluye nuevas opciones e información adicional que facilitarán el seguimiento y análisis de su código.

    • Parámetros: conocer los parámetros de entrada y salida de un método o función, así como su tipo, es esencial para depurar el código. La línea de declaración se muestra en la parte superior izquierda de la ventana del depurador. En el panel de la cadena de llamadas, puedes elegir si quiere mostrar (o no) el tipo del parámetro. 
    • Comentarios: para ayudar a explicar un método o función, una práctica común es incluir comentarios al principio de los bloques de código. Estos comentarios son ahora visibles en el depurador. Leer la documentación

 

Depuración remota

Esta funcionalidad le permite decidir dónde quiere depurar el código de su servidor (del lado del cliente o del lado del servidor). La depuración del lado del cliente es especialmente útil si ejecuta su servidor en modo headless (o como un servicio de Windows).

Se han añadido dos nuevos elementos de menú (en ambos lados) para gestionar la fijación del depurador:

  • Adjuntar / Deshacer el depurador: adjunta o separa instantáneamente el depurador a su cliente o servidor.
  • Adjuntar depurador al inicio: adjunta el depurador cuando inicia su cliente o servidor. 

Tenga en cuenta que el depurador sólo puede adjuntarse a una sola instancia de 4D a la vez. Por ejemplo, si intenta adjuntar el depurador a su servidor sin separarlo del cliente, aparecerá un mensaje de error con información sobre el propietario del depurador.

Y para ayudarle a diferenciar si el depurador o las ventanas de error son del servidor o del cliente, hemos cambiado el aspecto de estas ventanas. Leer la documentación

4D Write Pro

 

Convierta sus documentos de Word al formato 4D Write Pro blank

Ahora puede importar documentos .docx a 4D Write Pro. Para ello, utilice la nueva constante wk docx con el comando existente  WP Import document. Por favor, tenga en cuenta que 4D Write Pro importará la mayor parte del contenido del documento MS Word, excepto lo que no está soportado en 4D Write Pro (como se detalla en el capítulo de documentación: importar y exportar en formato .docx).  Además, durante el proceso de importación, se genera un registro de importación que se integra dentro del propio documento de 4D Write Pro. Podrá consultarlo para ver si hay alguna diferencia potencial entre el documento original y el convertido. Leer la documentación

Exportación directa a PDF

Sin necesidad de instalar ningún controlador de impresión o software adicional, los documentos de 4D Write Pro pueden exportarse directamente a formato PDF. Una exportación directa no sólo es más rápida y fiable que pasar por un controlador de impresión, sino que también da más control sobre el resultado. Además de soportar hipervínculos, permite optimizar el tamaño de las imágenes y mucho más. El comando WP EXPORT DOCUMENT ha sido actualizado para aceptar una nueva constante: wk pdf. Leer la documentación

 

Buscar y reemplazar blank

Buscar (y reemplazar) texto dentro de un documento 4D Write Pro ya es posible con comandos básicos como WP Get textWP Set text. Existe un nuevo comando que permite ir más rápido que nunca, con criterios opcionales: WP Find all. Leer la documentación

 

Localizar todas las rupturas blank

Los documentos de 4D Write Pro soportan cinco tipos de saltos:

  • saltos de línea
  • saltos de párrafo
  • saltos de página
  • saltos de sección
  • saltos de columna

A veces, es necesario localizar un determinado tipo de salto para sustituirlo por otro, o simplemente eliminar todas sus apariciones en el documento. Para que esto sea posible, hemos desarrollado una nueva función: WP Get breaks. Leer la documentación

 

Fórmulas: gestión del comportamiento del retorno de carro

Existe una nueva propiedad del documento que define cómo debe tratarse el retorno de carro: wk break paragraphs in formulas. Tiene dos valores posibles:

  • wk true: interpretado como saltos de párrafo.
  • wk false: (valor por defecto) Se interpreta como saltos de línea. Leer la documentación

 

Mejoras en la interfaz de usuario

Una nueva pestaña está disponible en el widget de la interfaz de 4D Write Pro que permite importar y exportar documentos en diferentes formatos. Además, se han introducido nuevas mejoras en la barra de herramientas y en la barra lateral. Ahora puede: aumentar o disminuir el texto, copiar/pegar la regla, cambiar el color de fondo de un párrafo, cambiar el estilo de una palabra (mayúsculas, minúsculas, etc.) Leer la documentación

 

Seleccionar las páginas del widget a mostrar

4D muestra sólo las páginas mencionadas en la colección, en el orden de la misma. Esto permite reducir el conjunto de funcionalidades para hacerlo más sencillo para el usuario final. Si sólo se necesitan opciones de estilo, es mejor no mostrar el resto de funcionalidades. Ahora, el widget 4D Write Pro ofrece la posibilidad de seleccionar qué páginas mostrar con el nuevo método del componente WP ShowTabPages. Simplemente pase el nombre del widget y una colección de páginas a mostrar cuando llame al método. Leer la documentación

Selección de caracteres para pestañas decimales

Si tiene documentos de varias fuentes, los números pueden no estar correctamente formateados para sus necesidades. Ahora, 4D Write Pro le permite especificar esta configuración para cada documento. Puede elegir alinear los números por:

  • el punto,
  • la coma,
  • el primer separador encontrado (punto o coma),
  • o el separador definido en el sistema operativo.

Para maximizar la compatibilidad (con MS Word en particular) la opción #3 se utiliza por defecto al crear nuevos documentos. Al migrar documentos de 4D Write a 4D Write Pro, se utiliza por defecto el separador definido por el sistema. Leer la documentación

 

Gestionar los guiones suaves

La inserción de guiones suaves se ha simplificado ofreciendo nuevas acciones estándar, así como nuevos botones en los widgets de la interfaz de 4D Write Pro.

Dos nuevas acciones estándar están a su disposición:

  • insertSoftHyphen
  • removeSoftHyphens

La funcionalidad también se ha añadido a los widgets de la interfaz 4D Write Pro tanto en el widget de la barra de herramientas como en el widget de la barra lateral. Leer la documentación

 

Nuevas acciones estándar para tablas y sus elementos

4D v19 añade nuevas acciones estándar a 4D Write Pro, dirigidas a tablas, filas y celdas. Permiten definir el tipo de borde de una tabla, el color de fondo de una celda, la alineación vertical del texto en una fila, la alineación de la propia tabla dentro del documento, los márgenes, el relleno y más de 40 opciones. En consecuencia, la interfaz de 4D Write Pro ha sido mejorada en cuanto a las capacidades de procesamiento de tablas. Se han añadido cuatro nuevos botones para cambiar la apariencia de las tablas, filas, columnas y celdas. Leer la documentación

Soporte de atributo protegido

En 4D v19, las partes designadas de los documentos de 4D Write Pro (o todas las partes) pueden ser “no editables”. Hay dos niveles de protección disponibles. Primero, defina qué parte de los documentos estará protegida (por defecto, todas las partes están protegidas). A continuación, active el indicador de protección del documento para que se tengan en cuenta los ajustes realizados. Para ello, existen dos nuevos atributos que se pueden utilizar con el comando WP SET ATTRIBUTESwk protected (puede establecerse para casi cualquier tipo de objetivo perteneciente a un documento), y wk protection enabled  (activa o desactiva la protección global del documento). Leer la documentación

 

Administrar fórmulas dentro de los documentos

4D v19 incluye un conjunto de comandos para que pueda gestionar las fórmulas dentro de sus documentos 4D Write Pro:

  • WP Get formulas: recupera todas las fórmulas dentro de un objetivo específico (el documento completo en sí, y también partes más específicas de un documento como el cuerpo, la segunda sección, el encabezado izquierdo, etc.),
  • WP Insert formula: inserta una expresión como objeto de fórmula dentro de un rango determinado,
  • WP Compute formulas y WP Freeze formulas: pueden utilizarse de forma muy similar (es decir, utilizando un objetivo). Reevalúa todas las expresiones de un documento o simplemente congela sólo las expresiones pertenecientes a los pies de página. Leer la documentación

Borrar imágenes

La eliminación de imágenes en línea o ancladas puede hacerse ahora con el nuevo comando WP DELETE PICTURE. Simplemente recupere la imagen que desea eliminar por su ID (utilizando WP Get element by ID) o por su posición (utilizando WP Get elements), luego llame al comando. Leer la documentación

 

 4D View Pro

 

Mejoras con SpreadJS v14blank

4D v19 viene con una nueva cinta de 4D View Pro. Además del nuevo aspecto, hemos añadido nuevas funcionalidades para soportar las nuevas funcionalidades de SpreadJS v14.

Esta nueva barra de herramientas trae nuevas funcionalidades tales como:

  • Soporte de accesibilidad:  ofrece un soporte de accesibilidad adecuado para los usuarios con discapacidades que utilizan tecnologías de asistencia como los lectores de pantalla. Para más información, consulte Soporte de accesibilidad
  • Personalización del indicador de comentarios: ahora los usuarios pueden cambiar el color y el tamaño del indicador.
  • Copiar imágenes de Excel:  permite copiar imágenes de Excel y pegarlas en hojas. La imagen pegada tendrá el mismo tamaño, borde y fondo que tenía en Excel.
  • Efectos de relleno y patrones: mejora la apariencia de las celdas en una hoja de cálculo aplicando efectos de patrón o gradiente a las celdas. Para más información, consulte Relleno de patrón y Relleno de degradado.

Soporte de seis idiomas

Además del inglés, hemos añadido soporte para el francés, el alemán, el español, el japonés y el portugués. Si usted es un usuario de 4D v19 y superior con un sistema operativo que coincida con los idiomas soportados, notará que todos los elementos de 4D View Pro están ahora traducidos (cinta de opciones, barra de herramientas, menú contextual, mensajes de error, etc.).

 

Fin de la carga del documento

Dos nuevos eventos están disponibles para permitirle saber cuando sus cálculos han terminado: On VP Range Changed y on Timer event.

Esto puede ser útil, por ejemplo, cuando se carga un gran 4D View Pro con muchas fórmulas, y los cálculos pueden tardar en completarse. O si utiliza un área fuera de la pantalla y quiere, por ejemplo, exportar el documento en formato PDF o Excel, debe esperar a que terminen estos cálculos para hacerlo. Leer la documentación

 

Buscar y reemplazar 

A veces, cuando usted inicializa un documento de 4D View Pro, que necesita encontrar algunos valores o etiquetas y reemplazarlos con datos emitidos desde 4D. Ahora es muy fácil con el comando VP Find command. Gracias a este comando, usted puede encontrar datos, fórmulas o etiquetas y reemplazarlos en toda la hoja o sólo en una parte específica de ella. Leer la documentación

 

Fórmulas 4D en hojas de cálculo 

El comando VP SET CUSTOM FUNCTIONS permite crear funciones personalizadas en 4D View Pro para ejecutar una fórmula 4D. No es necesario crear un método para utilizar una simple variable en 4D View Pro, simplemente pásela como parámetro a su Formula. Además, el comando simplifica la escritura para el usuario final ofreciendo texto de ayuda y nombres de parámetros. En estructuras grandes, este comando es mucho más rápido que utilizar el comando genérico SET FIELD TITLES. Leer la documentación

Área fuera de pantalla 

Nuevo comando para manipular los comandos y funciones de 4D View Pro en un área fuera de pantalla está disponible: VP Run offscreen area. Para utilizarlo, basta con pasar la información del área en parámetro (por ejemplo, el nombre del área y el método llamado cuando un evento es lanzado por el área de 4D View Pro). Leer la documentación

 

Fusionar y desunir celdas

Un nuevo conjunto de comandos está a su disposición para ayudarle a combinar y desunir un grupo de celdas por programación:

  • Para crear una celda combinada: defina un rango con todas las celdas que desea combinar, luego páselo como parámetro al nuevo comando VP  ADD SPAN que combina las celdas en un solo tramo de celdas.
  • Utilice el comando VP Get spans para recuperar todas las celdas combinadas.
  • Elimine las celdas con espacios en su documento con el comando VP REMOVE SPAN. Leer la documentación

 

Fórmulas: recalcular, suspender y reanudar

Existen tres nuevos comandos que le permiten activar los cálculos de las fórmulas cuando lo desee:

  • VP RECOMPUTE FORMULAS – para recalcular las fórmulas cuando los datos cambian.
  • VP SUSPEND COMPUTINGVP RESUME COMPUTING – le permiten, respectivamente, suspender y reanudar los cálculos. Leer la documentación

 

Más opciones para personalizar las hojas de trabajo

Un nuevo comando, VP SET SHEET OPTIONS, está disponible para definir varias opciones de hoja de un área de 4D View Pro. Por ejemplo, este comando le permite:

  • proteger una hoja de trabajo impidiendo que se editen las celdas que contiene,
  • personalizar los colores de las pestañas de la hoja de trabajo, las líneas congeladas, las líneas de cuadrícula o el fondo y el borde de una selección,
  • gestionar la visibilidad de las líneas de cuadrícula de una hoja de trabajo y de los encabezados de fila/columna. Leer la documentación

 

Gestionar filas y columnas

4D v19 incluye nuevos comandos para gestionar columnas y filas. Estos comandos le permiten adaptar mejor sus documentos a sus necesidades. Se pueden añadir y eliminar columnas y filas, o definir su tamaño, visibilidad y etiquetas de encabezado con los siguientes comandos:

  • VP INSERT ROWSVP INSERT COLUMNS: añaden filas o columnas pasando un rango que contiene la primera columna o fila como parámetro y el número de filas o columnas a añadir.
  • VP SET COLUMN COUNT y VP SET ROW COUNT: definen el número de columnas y filas mostradas. Por defecto, una hoja de 4D View Pro contiene 100 columnas y 1.000 filas. 
  • VP DELETE ROWSVP DELETE COLUMNS: eliminan filas o columnas específicas. 
  • VP SET COLUMN ATTRIBUTES y VP SET ROW ATTRIBUTES: especifican el ancho de las columnas o la altura de las filas; añadir un salto de página para la impresión; ocultar o mostrar columnas o filas; habilitar o prohibir el cambio de tamaño de las columnas o filas por parte de los usuarios; cambiar las etiquetas de los encabezados de las columnas o filas. Leer la documentación

 

Bloquear filas y/o columnas

VP SET FROZEN PANES un nuevo comando para ayudarle a crear paneles. Si tiene una tabla grande de datos, puede ser útil mantener visible un área de una hoja de trabajo mientras se desplazas a otra área. Con este comando, puede crear hasta 4 paneles en su área: uno a la izquierda, uno arriba, uno a la derecha y uno abajo. Leer la documentación

 

 R-releases en profundidad