Novedades en 4D v16 R4

Notación de objetos

Los objetos, introducidos como objeto de lenguaje con 4D v14, soportados por el motor de la base de datos con 4D v15, mejorados con 4D v16 y a partir de 4D v16 R4, verán un gran aumento de la funcionalidad. Iniciará con la creación de código más fácil y más rápido y en un futuro próximo habrá una revolución en la forma de escribir código y utilizar el motor de la base de datos.

Con la notación de objetos, ofrecida como vista previa en 4D v16 R4, simplemente puede escribir $miObjeto.atributo.subatributo:=5 acceder a un atributo con $persona.hijos[2].nombre. Como recordatorio, el estado vista previa significa que puede jugar y aprender con la nueva funcionalidad, pero aún no está lista para producción.

De hecho, puede utilizar la notación objeto como expresión. Por ejemplo crear un objeto formulario como una variable texto y asignar directamente el atributo objeto, por ejemplo [persona]familiares.abuelo.nombre.firstname. Ya no es necesario utilizar OB Get de forma recursiva para leer el valor y asignarlo a una variable temporal, sólo para mostrarlo.

Para utilizar las funcionalidades de notación objeto, debe activar la notación de objetos en la página compatibilidad del diálogo Configuración de la base. Esta acción es irreversible.

Al activar esta funcionalidad, debe ser consciente de que ya no está permitido el uso de caracteres especiales tales como puntos (.) y/o llaves ([]) en los nombres de variables, tablas, campos y métodos proyecto. Con el fin de verificar que su aplicación cumple con los requisitos previos de la notación de objetos, puede ejecutar Verificar la aplicación en el CSM. Los elementos que contienen caracteres prohibidos serán listados en el MSC registro, de modo que puede encontrar fácilmente lo que hay que renombrar de la aplicación.

La notación de objetos está disponible para:

  • Editor de métodos: utilizar la notación de objetos es más elegante, más fácil y más intuitivo en la manipulación de objetos que utilizar OB Get y OB Set.
    Puede crear, leer o modificar atributos de objeto directamente, incluso crear nuevos elementos en un atributo de array de objetos, simplemente utilizándolo. Si, por ejemplo, un array dentro de un objeto tiene 3 elementos y usted escribe en el elemento 10, se ampliará automáticamente y se crearán los elementos faltantes.
  • Editor de formularios: puede utilizar la notación de objetos como fuente de datos del objeto de formulario en el editor de formularios. Los objetos complejos se pueden mostrar como campos de entrada individuales. Utilizando el lenguaje podría incluso crear dinámicamente un formulario y simplemente enlazar los widgets de formulario a los atributos de un objeto.
  • Depurador y Explorador de ejecución: puede utilizar la notación de objetos en el Depurador con el fin de probar y verificar su código.

Nuevo tipo de variable: Colección

4D v16 R4 introduce un nuevo tipo de variable en el lenguaje: Colección. A primera vista una colección se parece a un array, pero mientras que un array es una lista muy optimizada del mismo tipo (Array entero largo, Array Texto, …), una colección es una especie de recipiente que almacena una lista de tipos individuales (un entero largo, luego un texto, luego un número, luego una imagen, un objeto, incluso otra colección, etc). Una colección es muy flexible. Si bien un array necesita menos memoria y podría ser más rápido, una colección es más flexible y acelera el tiempo de desarrollo.

Se podría imaginar un objeto como una lista de atributos con nombre, mientras que una colección es una lista de atributos sin nombre, a la que se accede con un índice. El comando New collection crea una nueva colección vacía o precargada. Y se puede acceder a las colecciones con la notación de objetos…

Comando Null

El nuevo comando Null se puede utilizar para verificar si un atributo objeto o un miembro de la colección tiene un valor desconocido o faltante (tenga en cuenta la diferencia con el valor 0 o con una cadena vacía “” con un valor no definido). También permite establecer un valor de atributo como desconocido. Y sí, se puede utilizar con la notación de objetos.

Soporte de imágenes en objetos

Ahora las imágenes se pueden almacenar en un campo objeto o en una variable objeto. Muchos desarrolladores utilizan el tipo de campo objeto para permitir a sus clientes mejorar la estructura de la base con campos personalizados, almacenar todo tipo de información. Las imágenes no eran posibles hasta ahora.

Los comandos OB Get y OB SET han sido actualizados para soportar el nuevo tipo Is picture y poder almacenar una imagen en un campo objeto. Y por supuesto, se puede utilizar la notación de objetos también…

Validar los objetos JSON

Al trabajar con objetos tarde o temprano intercambiará objetos con otras aplicaciones o servicios y para ello es necesario analizar cadenas JSON. Si estas cadenas están bien definidas, todo está bien, pero a veces no lo están y una nueva opción puede reducir drásticamente el tiempo de depuración. El parámetro opción * de JSON Parse crea información de depuración adicional (propiedad __symbols) ruta, posición de la línea y la línea de desplazamiento de cada propiedad y sub-propiedad del objeto. Esta información puede ser útil para la depuración.

Incluso si un objeto está bien formado, podría no cumplir con las especificaciones solicitadas o normas de contenido. El nuevo comando JSON Validate le permite comprobar si la estructura del objeto se ajusta a una especificación dada (Esquema JSON).

4D Write Pro

Tablas 4D Write Pro

Las tablas llegan a 4D Write Pro. Tablas reales, celdas individuales, si introduce un texto de gran tamaño en una celda, el texto se ajustará automáticamente, y el ancho de las celdas permanece igual. Puede crear una tabla desde cero y modificar el estilo de la tabla, o sus columnas, filas e incluso celdas individuales, todo esto por programación.

El nuevo comando WP Insert table  le permite crear una tabla con un número de celdas, filas o vacía. Los siguientes comandos se han creado para permitirle administrar las tablas en su documento 4D Write Pro: WP Table append row, WP Table get rows, WP Table get columns, WP Table get cells. Todos estos nuevos comandos son hilo seguro.

Hipervínculos 4D Write Pro

Añadir un enlace al logotipo o nombre de su empresa ahora es tan fácil como colocar un texto en negrita. Gracias al nuevo atributo wk link url, los hipervínculos se puede añadir a imágenes, texto o una combinación de ambos, sólo utilizando los comandos WP SET ATTRIBUTES y WP GET ATTRIBUTES.

Diseñe su propia barra de herramientas con acciones estándar

Cree fácilmente su barra de herramientas 4D Write Pro personalizada, sin necesidad de programación. El mecanismo de acciones estándar, es sencillo pero muy poderoso y se ha extendido de nuevo con 4D v16 R4. De hecho, las acciones estándar pueden ahora ser asignadas a las casillas de selección y menús emergentes.

El uso de acciones estándar hace que se beneficie de mecanismos automáticos que le permitirán ahorrar tiempo: la activación/desactivación de objetos se realiza automáticamente por 4D en función del contexto y el estado actual (para casillas de selección) o valor (para menús emergentes) es actualizado automáticamente por 4D de acuerdo con la selección de texto actual.

Línea de productos Windows 64 bits libres de Altura

Toda la línea de productos 4D Windows 64 bits ya no se basa en la librería Mac2Win de Altura. 4D Server Windows 64 bits fue el último paso y se hace con 4D v16 R4. Esto está permitiendo a 4D internamente utilizar tecnologías modernas en la plataforma Windows y hacer que usted se beneficie de las nuevas funcionalidades tales como SDI.

Soporte SDI en Windows

En Windows, 4D solía tener una ventana principal gris (ventana llamada MDI) con todas las ventanas de la aplicación mostradas al interior (como ventanas hijas). Las aplicaciones SDI, como Microsoft Outlook, por ejemplo, tienen una ventana principal, pero pueden abrir muchas ventanas adicionales que son independientes de la ventana principal. Se pueden mover a otras pantallas, permanecen visibles incluso si la ventana principal está oculta y así sucesivamente…

Por otro lado, el MDI también tiene beneficios para algunas aplicaciones comerciales, ya que todas las ventanas permanecen juntas para crear la aplicación. Un buen ejemplo es Adobe Photoshop. Esta es la razón por la que 4D permite dos modos para aplicaciones fusionadas.

Hojas de cálculo 4D View Pro

4D v16 R4 presenta el primer paso de la hoja de cálculo 4D View Pro como vista previa. Descubra el nuevo objeto de formulario 4D View Pro y los nuevos comandos 4D View Pro. Cree un nuevo documento con VP NEW DOCUMENT, guárdelo en el disco con VP EXPORT DOCUMENT o en la base de datos utilizando VP Export to object y vuelva a abrirlo con VP IMPORT DOCUMENT o VP IMPORT FROM OBJECT.

Ventana de administración del servidor personalizado

Una serie de funcionalidades en el desarrollo le permitirán crear su propia ventana de administración del servidor, controlando la información que desea mostrar o permitir que el administrador cambie.

Información sobre los procesos y usuarios

Como primer paso, el nuevo comando Get process activity da una instantánea de las sesiones de usuario conectadas, procesos en ejecución relacionados y de todos los procesos actuales incluidos los procedimientos internos que no eran accesibles por el comando PROCESS PROPERTIES. También puede calcular a partir de la información de sesión/proceso devuelve el tiempo de CPU consumido por este proceso desde la conexión (en segundos) y el porcentaje de actividad (por ejemplo: 2%).

Información detallada sobre las licencias

El nuevo comando Get license info devuelve información detallada sobre las licencias instaladas y las licencias utilizadas/disponibles.

Mayor control de visualización del mensaje de ayuda

Muy sencillo, puede por programación activar o desactivar todos los mensajes de ayuda dentro de una aplicación 4D con el comando SET DATABASE PARAMETER. Además, puede definir el retardo de la pantalla y la duración máxima de la pantalla por el lenguaje. Pero eso no es todo, también es posible modificar dinámicamente el texto de un mensaje de ayuda utilizando el comando OBJECT SET HELP TIP.

Definir el orden de tabulación del formulario por programación

Esta funcionalidad le permite definir en un formulario que el orden de entrada de objeto por programación, por lo que puede controlar en cual siguiente objeto de formulario estará el foco cuando el usuario presione la tecla TAB. Dos nuevos comandos FORM SET ENTRY ORDER y FORM GET ENTRY ORDER, le permiten, respectivamente, configurar y obtener de forma dinámica el orden de entrada de los objetos del formulario actual para el proceso actual. Esta funcionalidad especialmente útil cuando se crean formularios dinámicamente.

Mejora de la interfaz de usuario relacionada con IPv6

4D v16 R4 trae mejoras en la interfaz de usuario para una mejor experiencia para quienes utilizan configuraciones de red IPv6.

¿Quiere saber más? Lea todos los artículos sobre 4D v16 R4