Novedades de 4D v17

Traducido automáticamente de Deepl

Este documento es una compilación de todas las funcionalidades disponibles en 4D v17, que fueron introducidas durante el programa de lanzamiento de v16 R o en el último paso de 4D v16 R6 a 4D v17. 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 del blog haciendo clic en el título de la característica.

También considere que las secciones con la etiqueta blank están relacionadas con todas las nuevas funcionalidades lanzadas entre 4D v16 R6 y 4D v17.

Este documento está dividido en siete secciones:

ORDA

4D v17 introduce un concepto innovador que le permite manejar su base de datos con un enfoque orientado a objetos: ORDA (Object Relational Data Access).

Estas son las características que estamos entregando con esta versión:

Crear, actualizar y borrar datos blank

Con ORDA, las operaciones CRUD (Crear, Leer, Actualizar y Borrar) se pueden realizar en su base de datos a través de una capa de abstracción: el datastore, que es un objeto que proporciona una interfaz al modelo de base de datos y a los datos a través de objetos. Con ORDA, las operaciones de Crear, Actualizar y Borrar no se realizan sobre una selección actual o sobre un registro actual, sino sobre entidades:

  • Crear: se puede lograr instanciando una nueva entidad con el método new() y luego guardándola con el método save().
  • Actualizar: se realiza sobre una entidad utilizando el mismo método save( ).
  • Borrar: se realiza sobre una entidad o una selección de entidades utilizando el método drop ().

Leer documentación

Consulta de la base de datos blank

Con ORDA, el datastore es un objeto que proporciona una interfaz al modelo de la base de datos y a los datos a través de objetos. Además ya no se maneja la selección actual para cada tabla y registro actual, sino que las entidades son objetos. Puede consultar fácilmente varias tablas vinculadas, manejar relaciones recursivas sobre una misma tabla, así como utilizar varios operadores lógicos en una sola consulta. 4D v17 ofrece varias maneras de permitirle consultar su dataClass (es decir, la tabla): puede proporcionar la consulta como una sola cadena, o proporcionar la consulta y los valores por separado utilizando marcadores de posición, o proporcionar la consulta y los valores por separado utilizando una colección construida dinámicamente. Leer la documentación

Iry venir de la selección actual a ORDA blank

ORDA puede integrarse con su código existente. Es posible actualizar la selección actual de una tabla desde una selección de entidad, así como obtener una selección de entidad desde la selección actual de una tabla. Se agregan nuevos comandos para este propósito: el comando USE ENTITY SELECTION para actualizar la selección actual en la tabla correspondiente, y el comando Create entity selection para obtener una selección de entidad relacionada con la DataClass correspondiente. Leer la documentación

Convertir a entidades, objetos y colecciones blank

Con ORDA puede separar las entidades y las selecciones de entidades de la base de datos para trabajar con ellas por separado. También puede mover objetos y colecciones existentes a la base de datos. Así, para exportar una entidad a un objeto, utilice el método toObject( ); y el método toCollection() en caso de querer exportar una selección de entidades a colección. Y la importación de una entidad a través de un objeto se puede hacer gracias al método fromObject () y la importación de una selección de entidades a través de una colección se puede lograr con el método fromCollection(). Leer la documentación

Gestionar bloqueos

Bloqueo optimistablank

ORDA permite trabajar con bloqueos optimistas proporcionando un conjunto completo de métodos para gestionar los errores que puedan surgir al guardar una entidad en la base de datos. El proceso es muy sencillo: Después de recargar la entidad desde la base de datos con el método reload(), el método touchedAttributes() te permite saber qué propiedades han sido alteradas desde la última vez que se cargó o guardó, y finalmente puedes comparar las dos entidades usando el método diff(). Leer la documentación


Bloqueo pesimista blank

Además del bloqueo optimista, ORDA también permite trabajar con el bloqueo pesimista utilizando el método lock () que bloquea una entidad, de manera que guardar una referencia en esta entidad en otros procesos fallará hasta que la entidad sea desbloqueada. Así, a partir de ahora no es necesario comprobar si una entidad está bloqueada antes de cargarla, ya que al intentar actualizarla, el método save() devolverá un estado detallado indicando los motivos del bloqueo. Leer la documentación

Manejar entidades en la selección de entidades blank

ORDA proporciona métodos simples para crear y añadir selecciones de entidades, así como métodos para navegar a través de las entidades en un objeto de selección de entidades, lo que le permitirá manejar varias selecciones de entidades al mismo tiempo y navegar a través de ellas de forma independiente. Una selección de entidades se crea utilizando el método newSelection() , y las entidades se añaden a ella con el método add(). Una selección de entidades proporciona los métodos first () y last() para obtener la primera y la última entidad, y una entidad proporciona previous() y next() para obtener la entidad anterior y la siguiente. Leer la documentación

Operaciones lógicas sobre selec ciones de entidades blank

Los operadores lógicos se pueden utilizar en la selección de entidades, lo que le permite obtener la intersección, la unión o la diferencia entre dos selecciones de entidades como con los conjuntos en el lenguaje clásico. Leer documentación

Cálculo sobre selecciones de entidades blank

ORDA proporciona una gran característica para canalizar los datos a través de filtros y obtener valores agregados, ofrece un conjunto de operaciones de agregación que examinan y realizan cálculos en los conjuntos de datos. Por ejemplo, los métodos sum(), average(), count(), min() y max() se utilizan para realizar las operaciones que sus nombres describen. Leer la documentación

Lenguaje 4D

Estas son las principales mejoras que hemos introducido en el lenguaje 4D para que su experiencia de codificación sea mucho más fácil e intuitiva:

Notación de objetos

La característica de notación de objetos cambia drásticamente la forma de escribir código y utilizar el motor de la base de datos, su codificación se hace más rápida y fácil de entender. Por ejemplo, puedes simplemente escribir $miobjeto.atributo.subatributo:=5 o acceder a un atributo con $persona.hijos[2].nombre, también puedes usar la notación de objetos como expresión. Por ejemplo crear un objeto de formulario como una variable de texto y asignar directamente el atributo del objeto, por ejemplo [persona]familiares.abuelo.nombre. Ya no es necesario usar OB Get recursivamente para leer el valor y asignarlo a una variable temporal, sólo para mostrarlo. Una de las ventajas de la notación de objetos es el uso de propiedades y valores indefinidos, porque el lenguaje 4D ahora acepta valores indefinidos en cualquier parte de una expresión. Y, siempre que se asigne un valor indefinido a una variable, se establecerá un valor por defecto de acuerdo con su tipo.Esto significa que la lectura de la propiedad de un objeto inexistente no generará un error ni detendrá la ejecución del código. Leer la documentación

Objetos y colecciones compartidas

Los objetos y colecciones compartidos son una forma fácil y eficiente de compartir información entre procesos preventivos. Los objetos compartidos y las colecciones compartidas se comportan igual que los estándar, salvo que deben declararse como «compartidos» durante su instanciación con los siguientes nuevos comandos: Nuevo objeto compartido y Nueva colección compartida. Una vez instanciados, pueden ser utilizados directamente, como cualquier otra variable, para su lectura. Y para escribir o modificar, deben estar rodeadas por las palabras clave Use y End use . Leer la documentación

Nuevo iterador: For each/ End for each blank

Un nuevo iterador se ha incorporado al lenguaje 4D: For each/ End for each, para permitirle iterar sobre tipos de datos avanzados como colecciones y no es necesario tener un conocimiento previo de cuántos elementos pertenecen a la colección antes de entrar en el bucle. También se puede utilizar para iterar sobre propiedades de objetos. Esto es útil si quieres escribir algún código genérico, sin conocer los nombres de las propiedades de los objetos por adelantado. Lea la documentación

Colecciones

Las colecciones son un nuevo tipo añadido al lenguaje 4D. Las colecciones son flexibles y pueden acelerar su tiempo de desarrollo. A primera vista una colección se parece a un array, pero mientras que un array es una lista altamente optimizada del mismo tipo (Array longint, Array Text, …), una colección es una especie de contenedor que almacena una lista de tipos individuales (un longint, luego un texto, luego un número, luego una imagen, un objeto, incluso otra colección, etc); y se puede acceder a ella con notación de objeto. El comando Nueva colección crea una nueva colección vacía o precargada. Y para facilitar la manipulación de las colecciones, se proporcionan un montón de nuevos métodos para ser utilizados con la Notación de Objetos. Estos métodos permiten, por ejemplo, añadir o eliminar elementos, ordenar la colección y mucho más. Ya están disponibles más de 40 métodos nuevos. Éstos son sólo algunos de ellos: pop(), push(), concat(), resize(), query(), slice(), .. . Leer documentación

Comando Null

El nuevo comando Null se puede utilizar para comprobar si un atributo de un objeto o un miembro de una colección tiene un valor desconocido o ausente (tenga en cuenta la diferencia del valor 0 o una cadena vacía «» con un valor no establecido). También permite establecer el valor de un atributo como desconocido. Este comando se puede utilizar con la notación del objeto. Leer la documentación

Desarrollar con objetos

Fechas dentro de los objetos

Ahora las fechas pueden establecerse como fechas y no como cadenas en un objeto, lo que hace que el uso de las fechas dentro de los objetos sea más fácil e intuitivo. Así, OB SET y OB Get pueden utilizarse sin requerir la constante is date, y la notación de objetos puede aplicarse a ellos como a cualquier otro objeto típico. Para utilizar las fechas dentro de los objetos, basta con marcar la opción «Utilizar el tipo de fecha en lugar del formato de fecha ISO en los objetos» en la página de configuración de la compatibilidad en la Configuración de la base de datos. Leer la documentación

Soporte de imágenes en objetos

Ahora las imágenes pueden almacenarse en un campo de objeto o en una variable de objeto. Los comandos OB Get y OB SET son compatibles con el nuevo tipo de imagen Is y con la posibilidad de almacenar una imagen en un campo de objeto. Y también se puede utilizar la notación de objetos. Leer la documentación

Validar un objeto JSON

Se ha añadido una nueva opción para ayudarle a reducir el tiempo de depuración al analizar cadenas JSON. La opción * del parámetro JSON Parse crea información de depuración adicional (propiedad __symbols) que proporciona la ruta, la posición de la línea y el desplazamiento de la línea de cada propiedad y subpropiedad del objeto. Aunque un objeto esté bien formado, es posible que no cumpla las especificaciones o normas de contenido solicitadas. El nuevo comando JSON Validate permite comprobar si la estructura del objeto se ajusta a una especificación determinada(esquema JSON). Lectura de la documentación

Una forma sencilla de inicializar un objeto

El comando Nuevo objeto permite crear un objeto vacío o crearlo con propiedades y valores iniciales en una sola línea de código. Leer la documentación

Consulta de una lista de elementos en un solo objeto

Ahora es posible buscar en un array dentro de un objeto utilizando argumentos vinculados. El comando QUERY BY ATTRIBUTE permite la ejecución de consultas complejas dentro de una lista de elementos en un único objeto. Al buscar en atributos de matrices con múltiples argumentos de consulta unidos por el operador AND, tendrá la opción de elegir entre obtener los registros en los que los argumentos coincidentes estén en al menos un elemento o en el mismo elemento. Leer la documentación

Ordenar registros por atributo de objeto

Ahora es posible ordenar los registros en función de un atributo de objeto específico al mostrar una selección, por ejemplo, en un cuadro de lista, gracias al nuevo comando ORDER BY ATTRIBUTE. Leer la documentación

Multihilo preventivo

El multihilo preventivo permite que su aplicación aproveche al máximo los ordenadores multinúcleo. Como resultado, sus aplicaciones se ejecutan más rápido y pueden soportar más usuarios conectados. Se han mejorado más de veinte comandos existentes para que puedan utilizarse en procesos preventivos. Leer la documentación

Formularios dinámicos

Ahora es posible crear y utilizar formularios dinámicos. Almacenados en un formato basado en texto (JSON), abren una amplia lista de nuevas oportunidades: crear formularios totalmente adaptados al contexto del usuario final, compartir el mismo formulario entre varias bases de datos. La descripción textual del formulario puede guardarse en un objeto 4D o en un archivo. Luego, en tiempo de ejecución, los formularios pueden ser cargados. Los siguientes comandos han sido mejorados para que se pueda pasar un objeto 4D o una ruta de archivo JSON: Abrir ventana de formulario, DIALOGO, FORM SET INPUT, FORM SET OUTPUT, OBJECT SET SUBFORM, OBJECT GET SUBFORM, FORM LOAD, Print form. Leer documentación

Comunicación simplificada entre formularios

Deshágase de su complejo código y de las variables globales vinculando un objeto a un formulario y utilizándolo internamente con el nuevo comando Form . Todo lo que tiene que hacer es pasar los parámetros de un objeto a un formulario utilizando el comando DIALOG. Cualquier propiedad de este objeto estará entonces disponible desde dentro del formulario a través del comando Form. Esto también es válido para los subformularios. Lea la documentación

Nuevas posibilidades de programación con las acciones estándar

Las acciones estándar – como Primer Registro o color?value=red pueden asignarse a un botón o a un elemento de menú en la interfaz de usuario o mediante programación. Una de las ventajas es que 4D también gestiona automáticamente la desactivación del elemento de menú o del botón cuando la acción no es aplicable. Además, se han añadido dos nuevos comandos al lenguaje 4D para manejar fácilmente las acciones estándar mediante programación:

  • INVOKE ACTION puede utilizarse para activar cualquier acción estándar, opcionalmente en el contexto de destino (formulario actual o formulario principal).
  • Para saber si una acción estándar es aplicable y válida en el contexto actual, puede utilizar el comando Get action info.

Leer la documentación

Control de prioridad del gestor de caché

4D 64 bits incluye un gestor de caché totalmente optimizado basado en un mecanismo de gestión automática de la prioridad de los objetos en la memoria caché. El control total de la prioridad se da a la gestión de los objetos en la memoria caché, lo que permite un ajuste fino avanzado.

Para un uso avanzado y casos específicos, se pueden personalizar las prioridades de la caché utilizando dos conjuntos de comandos 4D:

Leer documentación

Seguridad

4D v17 da un gran paso adelante en materia de seguridad con las mejoras que se indican a continuación:

Para más detalles sobre las herramientas incorporadas y las técnicas involucradas en la creación de un entorno seguro para sus aplicaciones de negocio, por favor consulte nuestra Guía de Seguridad.

Clasificación A+ para los sitios web 4D blank

Ahora es posible obtener la clasificación A+ (tasa más alta) de SSL Labs para sus sitios web, simplemente activando la función HSTS (Seguridad de Transporte Estricta HTTP) en su servidor web 4D. HSTS permite a los servidores web declarar que los navegadores sólo deben interactuar con él a través de conexiones seguras HTTPS. Una vez activado, el servidor 4D Web añadirá automáticamente información relacionada con HSTS a todas sus cabeceras de respuesta. Cuando un navegador recibe la respuesta inicial del servidor 4D Web con la información HSTS, la registrará. A partir de ese momento, cualquier petición HTTP futura se transformará automáticamente a HTTPS. Y usted puede especificar el tiempo que el navegador almacenará esta información con la opción Web HSTS max age. Leer la documentación

Activación de Perfect Forward Secrecy en el servidor web 4D

La seguridad por defecto de 4D Web Server ha sido incrementada al soportar Perfect Forward Secrecy (PFS). Esta implementación proporciona a su aplicación un mejor cumplimiento de algunas características de seguridad de red, así como una mayor clasificación en las pruebas de auditoría de seguridad web. PFS se habilita automáticamente cuando se activa TLS en el servidor. El comando WEB Get server info puede utilizarse para asegurarse de que PFS está activado. El valor del nuevo atributo perfectForwardSecrecy es verdadero siempre que se cumplan todas las condiciones necesarias para utilizar PFS. Tenga en cuenta que el algoritmo RC4 está obsoleto ahora en 4D Web Server como resultado de algunos problemas de seguridad conocidos. Lea la documentación

Seguridad mejorada para el servidor web 4D

4D soporta Transport Layer Security (TLS v1.0, TLS v1.1, y TLS v1.2) para permitir comunicaciones encriptadas entre clientes y servidores. La versión mínima soportada por defecto es TLS v1.2, versiones anteriores serán rechazadas ya que podrían ser inseguras. Pero si quiere dar soporte a navegadores (o herramientas) más antiguos que no soportan TLS v1.2, puede disminuir el nivel de seguridad con el nuevo selector de versión mínima de TLS para los comandos Get database parameter y SET DATABASE PARAMETER. Leer la documentación

Verificación del hash y de la contraseña

El mecanismo de hashing es ideal para almacenar contraseñas. Se han creado dos nuevos comandos para generar y verificar las contraseñas con hash: Generar hash de contraseña y Verificar hash de contraseña. Ambos se basan en el algoritmo bcrypt, que es lento por diseño. Así, los ataques de fuerza bruta son más lentos y se minimizan los impactos. Leer la documentación

Soporte de SHA-2

Las funciones de compendio son útiles cuando se trata de comprobar la integridad de los datos durante los intercambios o las comparaciones. El comando Generar comp endio ha sido mejorado para soportar SHA-2. Ahora soporta dos algoritmos de la familia SHA-2: SHA-256 y SHA-512. La sintaxis sigue siendo la misma, y se han añadido las constantes de compendio SHA256 y SHA512. Leer la documentación

Restaurar por defecto la última copia de seguridad de la base de datos

Para proteger sus datos de los daños, la opción «Restaurar la última copia de seguridad si la base de datos está dañada» de la página «Copia de seguridad» de la Configuración de la base de datos está marcada por defecto para las nuevas bases de datos, lo que le proporciona el mejor nivel de protección. Leer la documentación

4D Write Pro

Documentosmulticolumna blank

Ahora puede crear documentos de varias columnas con 4D Write Pro, así como convertir sus documentos existentes de 4D Write que contienen varias columnas.Los comandos WP SET ATTRIBUTES y WP GET ATTRIBUTES han sido actualizados para soportar nuevos atributos para gestionar las columnas:

  • wkcolumn count: define el número de columnas para el documento o la sección
  • wk columnspacing: define el espacio entre dos columnas
  • wk columnrule style, wk column rule color, wk column rule width: define el estilo (punteado, rayado, etc.), el color o el ancho del separador vertical de columnas.

Leer la documentación

Obtener la posición de cualquier parte de un documento de 4D Write Pro blank

Un nuevo comando, dedicado a 4D Write Pro está ahora disponible: WP Get position. Dado un rango, elemento o referencia específicos, este comando devuelve una variable de objeto con cinco datos importantes a la vez: el número de sección donde comienza el rango, el número de página, el número de columna, el número de línea e incluso la posición del primer carácter del rango en la línea. Leer la documentación

Acceder programáticamente a los elementos en 4D Write Pro blank

El comando WP Get elements devuelve una colección de elementos de cualquier tipo (párrafos, tablas, imágenes, etc.). Si se pasa un rango escrito, el comando devuelve una colección que contiene sólo elementos del tipo correspondiente (a menos que se especifique en el segundo parámetro). En caso contrario, el comando devuelve una colección que contiene todos los elementos disponibles, sin importar su tipo. Leer la documentación

Cómo manejar fácilmente la inserción de texto blank

El comando WP SET TEXT permite escribir texto en cualquier posición dentro de un documento. Este comando se utiliza de la misma manera que la mayoría de los comandos «Insert» en 4D Write Pro. Toma tres argumentos: el objeto rango (donde se debe insertar el texto), el texto mismo, y luego una constante para definir si el texto debe colocarse antes, después o reemplazar el rango. Lea la documentación

Tablas de 4D Write Pro

¡Las tablas llegan a 4D Write Pro! Tablas reales, celdas individuales, si introduce un texto grande en una celda, el texto será automáticamente envuelto, y el ancho de la celda seguirá siendo el mismo. Puede crear una tabla desde cero y modificar el estilo de la tabla, o sus columnas, filas e incluso celdas individuales, todo esto mediante programación.

El comando WP Insert table permite crear una tabla con un número de celdas, filas o vacía. Los siguientes comandos han sido creados para permitirle manejar las tablas en su documento de 4D Write Pro: WP Table append row, WP Table get rows, WP Table get columns, WP Table get cells. Todos estos nuevos comandos son seguros. Lea la documentación

Mecanismo de acciones estándar extendido a 4D Write Pro

Se han creado más de 80 nuevas acciones estándar dedicadas a 4D Write Pro, lo que le permite manejar fácilmente las áreas de 4D Write Pro con nuevas acciones como Negrita, Color, Revisión ortográfica, Congelar expresión, Mostrar diálogo de selección de fuentes del sistema. .. Hay más de 80 acciones disponibles. Ahora es posible crear su propia interfaz de usuario de 4D Write Pro sin escribir una línea de código. Lea la documentación

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

Cree fácilmente su barra de herramientas personalizada de 4D Write Pro, sin necesidad de programar. El mecanismo de acciones estándar, simple pero muy potente, ha sido ampliado para que también pueda ser asignado a casillas de verificación y menús emergentes.

El uso de acciones estándar le permite aprovechar los mecanismos automáticos que le ahorrarán tiempo: la activación/desactivación del objeto es manejada automáticamente por 4D dependiendo del contexto y el estado actual (para las casillas de verificación) o el valor (para los menús emergentes) se actualiza automáticamente de acuerdo con la selección de texto actual. Leer la documentación

Diseñe su propio menú contextual para 4D Write Pro

El comando de menú emergente dinámico ha sido actualizado, haciendo posible el diseño de sus propios menús contextuales 4D Write Pro basados en acciones estándar. Leer documentación

4D Write Pro y el manejo de imágenes

Imágenes en posición absoluta

Se ofrece un control total sobre la inserción de imágenes en una posición específica: delante o detrás del texto, así como ancladas a la página o a partes específicas del documento (es decir , cabecera, pie de página, secciones). El comando WP Add picture añade la imagen a la página, luego para definir su posición exacta así como otras propiedades, puede utilizar acciones estándar, o utilizar el conjunto de selectores que se han añadido a los comandos WP GET ATTRIBUTES y WP SET ATTRIBUTES. Leer la documentación

Soporte de expresiones de imagen

4D Write Pro ahora soporta expresiones de imagen. El comando ST INSERT EXPRESSION ha sido ampliado para soportar cualquier expresión que devuelva una imagen. Una expresión puede ser una variable 4D, un campo, una función o un método definido por el usuario. Tenga en cuenta que antes de utilizar un método 4D en una expresión, debe habilitar el uso de este método utilizando el comando SET ALLOWED METHODS. Leer documentación

Imágenes de fondo de tamaño completo

Crear imágenes de fondo que llenen toda la página es posible con 4D Write Pro, gracias a un atributo de estilo de fondo para el recorte y el origen de la imagen. Este atributo puede ser controlado a través de:

  • El lenguaje 4D: Puede utilizar el comando WP SET ATTRIBUTES y establecer el nuevo valor de la caja de papel wk para el recorte de la imagen de fondo y/o el origen.
  • Acciones estándar: Se puede utilizar el comando INVOKE ACTION , o en modo diseño como cualquier otra acción estándar.
  • Widget 4D Write Pro: Al seleccionar los elementos «imagen de fondo» y «documento», las opciones de recorte y origen tendrán una nueva opción de caja de papel disponible.

Leer documentación

Gestionar cabeceras y pies de página mediante programación

Los encabezados y pies de página de 4D Write Pro pueden ser gestionados de forma programática para crear otros documentos basados en una plantilla, gracias a los nuevos comandos, divididos en dos categorías:

  • Comandos para obtener referencias de cualquier cabecera, pie de página o cuerpo dentro de los documentos, que pueden ser utilizados para obtener rangos asociados, crear documentos para una sección específica: WP Get header, WP Get body y WP Get footer.
  • Comandos para mover el cursor a una posición específica: WP Get frame se utiliza para obtener una referencia al marco en el que se encuentra actualmente el cursor, mientras que WP SET FRAME fija el cursor en un marco específico.

Leer la documentación

Hipervínculos en 4D Write Pro

Puede añadir un enlace al logo de su empresa o al nombre de la misma con el atributo wk link url. Los hipervínculos pueden ser añadidos en imágenes, texto o una combinación de ambos, simplemente usando los comandos WP SET ATTRIBUTES y WP GET ATTRIBUTES. Lea la documentación

Usar caracteres de encabezamiento para los tabuladores

4D Write Pro proporciona una funcionalidad adicional para afinar su diseño: los caracteres de encabezamiento (por ejemplo, los puntos repetidos o cualquier otro carácter en una tabla de contenidos). Los caracteres de encabezamiento pueden controlarse desde el menú contextual cuando se hace clic en una pestaña existente en el área de la regla, o bien de forma programada gracias al selector wk tab stop leadings new y al comando WP SET ATTRIBUTES. Leer la documentación

Regla horizontal de 4D Write Pro

Utiliza la regla horizontal en un área de 4D Write Pro para ajustar los márgenes, las sangrías y alinear horizontalmente el texto, los gráficos, las pestañas y otros elementos de tus documentos. Leer documentación

4D View Pro

Convertir documentos a 4D View Pro

El primer paso para convertir sus documentos existentes de 4D View a 4D View Pro está en marcha. Gracias al nuevo comando VP Convert from 4D View, la mayoría de las propiedades y la información almacenada en los documentos 4D View se convierten automáticamente, ¡incluyendo la estructura del documento, valores, formatos, estilos, bordes y fórmulas! Lea la documentación

Hojas de cálculo de 4D View Pro

Gracias al nuevo objeto formulario de 4D View Pro, y a los nuevos comandos de 4D View Pro, ahora puede crear hojas de cálculo de 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 con VP Export to object y vuelva a abrirlo con VP IMPORT DOCUMENT o VP IMPORT FROM OBJECT. Leer la documentación

Altura de fila variable automática del cuadro de lista

4D View Pro soporta la altura variable automática de las filas, lo que significa que un cuadro de lista adapta la altura de cada fila a su contenido para que se pueda mostrar todo el texto o la imagen evitando todo tipo de problemas de envoltura. Tres nuevas propiedades están disponibles en la lista de propiedades: Alto de fila automático, Alto de fila mínimo y Alto de fila máximo. Estos ajustes permiten a los desarrolladores definir si un cuadro de lista utiliza el modo de altura de fila automática, además de la altura de fila mínima y máxima permitida.
Estos ajustes también pueden gestionarse mediante programación utilizando el comando LISTBOX SET PROPERTY y el nuevo comando LISTBOX SET AUTO ROW HEIGHT . Leer la documentación

Más capacidades de programación

Obtener información del hardware dela máquina blank

El comando Obtener información del sistema recupera todos los detalles del hardware y del sistema de la máquina que se está ejecutando e información que incluye: qué sistema operativo se está utilizando, qué procesador(es), cuánta memoria RAM hay disponible, etc. Leer la documentación

Información detallada sobre el servidor web 4D

El comando WEB Get server info recupera información detallada sobre su servidor web 4D. Este comando tiene un parámetro de entrada opcional, withCacheInfo, que es útil si se necesita la información de la caché del servidor web. Este atributo está establecido en «False» por defecto. Leer la documentación

Información detallada sobre usuarios y procesos

El comando Get process activity ofrece una instantánea de las sesiones de usuario conectadas, de los procesos en ejecución relacionados y de todos los procesos actuales, incluidos los procesos internos a los que no se podía acceder con el comando PROCESS PROPERTIES. Además, se incluye un atributo systemID para identificar de forma exclusiva cualquier proceso: usuario, 4D y repuesto. También se puede calcular a partir de la información de sesión/proceso devuelta el tiempo de CPU consumido por este proceso desde que se conectó (en segundos) y el porcentaje de actividad (por ejemplo: 2%). Además, el comando facilita el análisis de los resultados. Leer la documentación

Información detallada sobre las licencias

El comando Get license info devuelve información detallada sobre las licencias instaladas y las licencias usadas/disponibles. Leer la documentación

Mejor gestión de las extensiones de archivos y carpetas

Se han creado dos comandos para facilitar la gestión de las rutas de archivos y carpetas. El comando Path to object devuelve un objeto que contiene las propiedades específicas (carpeta padre, nombre de archivo o carpeta, extensión de archivo o carpeta) de la ruta que se pasó como parámetro. El comando Objeto a ruta construye una ruta a partir de los atributos del objeto pasado en parámetro. Por lo tanto, para componer una nueva ruta, modifique los atributos del objeto que necesite y simplemente recombínelos.
Estos comandos deben utilizarse ahora en lugar de los comandos obsoletos _o_Document type y _o_SET DOCUMENT TYPE. Lectura de la documentación

Fácil acceso a los archivos de registro

El comando Get 4D file ha sido mejorado para un mejor acceso a los archivos de registro. Ahora puede encontrar fácilmente un archivo de registro en particular en lugar de obtener la carpeta que contiene todos los registros. Se ha creado un conjunto de nuevos selectores para este comando: Archivo de registro de solicitud, Archivo de registro de depuración, Archivo de registro de copia de seguridad, Archivo de registro de verificación, Archivo de registro de compactación, Archivo de registro de reparación, Archivo de registro de depuración HTTP y Archivo de registro de aplicación de construcción. Leer documentación

Comando Timestamp

El comando Timestamp permite obtener una marca de tiempo UTC precisa incluyendo milisegundos. Leer documentación

Experiencia del usuario

Completar el código y sugerir los atributos de los objetos

El editor de métodos se ha mejorado para proporcionar la finalización del código para los atributos de los objetos. Se muestra una lista de atributos sugeridos, cada vez que se escribe un carácter de punto después de un objeto, para mejorar la velocidad de codificación y evitar errores o erratas. El comportamiento de autocompletar puede personalizarse desde el panel de«Preferencias de 4D«, para definir si la lista de sugerencias se abrirá automáticamente después de escribir un carácter de punto (opción marcada), o sólo después de usar la tecla de tabulación (opción desmarcada). Leer la documentación

Línea de productos 4D Windows 64 bits sin altura

Toda la línea de productos 4D Windows 64-bit ya no depende de la librería Mac2Win de Altura. 4D Server Windows 64-bit era el último paso a completar y esto se hace con 4D v16 R4. Esto permite a 4D utilizar internamente tecnologías modernas en la plataforma Windows, y hacer que se beneficie de las nuevas características como SDI. Lea la documentación

Soporte SDI en Windows

La aplicación 4D Windows solía tener una ventana principal gris (llamada MDI – Multiple Document Interface) con todas las ventanas de la aplicación mostradas dentro (como ventanas hijas). Las aplicaciones SDI(Single Document Interface) tienen una ventana principal que puede abrir muchas ventanas adicionales que son independientes de la ventana principal. Pueden ser movidas a otras pantallas, permanecen visibles incluso si la ventana principal está oculta, etc… Por qué 4D ahora permite ambos modos en Windows 64-bit para las aplicaciones fusionadas. Leer la documentación

Consejos de ayuda sobre los cuadros de lista

Puede deshabilitar o habilitar programando todos los consejos de ayuda dentro de una aplicación 4D usando el comando SET DATABASE PARAMETER. También puede definir el retardo de la visualización y la duración máxima de la misma por idioma. Pero eso no es todo, también es posible modificar dinámicamente el texto de un consejo de ayuda utilizando el comando OBJECT SET HELP TIP. Además, el comando LISTBOX GET CELL POSITION admite ahora dos nuevos parámetros opcionales (posición x e y, en píxeles) y devuelve los números de columna y fila correspondientes, para ayudarle a mostrar consejos en una columna, fila o celda concreta de un cuadro de lista. Leer la documentación

Definir el orden de las pestañas del formulario mediante programación

Defina el orden de entrada de los objetos en un formulario mediante programación, de modo que pueda controlar en qué objeto del formulario siguiente se centrará el usuario cuando pulse la tecla TAB. Dos nuevos comandos – FORM SET ENTRY ORDER y FORM GET ENTRY ORDER – le permiten establecer y obtener dinámicamente el orden de entrada de los objetos del formulario para el proceso actual. Leer la documentación

Mejora de la interfaz de usuario relacionada con IPv6

Se ha mejorado la interfaz de usuario para que los usuarios con configuraciones de red IPv6 tengan una mejor experiencia. Leer documentación

Exportación de resultados tras una «búsqueda en el diseño»

El cuadro de diálogo «Buscar en el diseño» se ha potenciado con dos nuevas funcionalidades relacionadas con la ventana de resultados. Se ha añadido un nuevo botón que permite interrumpir una búsqueda en curso. Además, hay una nueva opción de filtro que permite seleccionar los elementos de los resultados que se desean conservar y eliminar todos los demás elementos excepto esta selección. Asimismo, los resultados de una operación de «Búsqueda en el diseño» se muestran en una lista jerárquica. Ahora también puede exportar los resultados de la búsqueda a un archivo de texto que puede abrirse posteriormente en una hoja de cálculo, por ejemplo, lo que le permite compartir o almacenar fácilmente los resultados. Para ello, basta con seleccionar el nuevo elemento Exportar resultados, disponible en el menú de acciones «Buscar en el diseño». Leer la documentación

Customize list box selection highlight color

Ahora es posible tener un control detallado sobre el color de resaltado, para cada línea o incluso celda. Para ello se ha añadido una nueva opción a la lista de propiedades del cuadro de lista: Hide selection highlight. Cuando esta opción está marcada, el desarrollador tiene que hacer visibles las selecciones del cuadro de lista utilizando las opciones disponibles de la interfaz. Luego pueden definir un color de fondo específico, colores de fuente y/o estilos de fuente mediante programación para personalizar la apariencia de las filas seleccionadas. Esto se puede hacer utilizando arrays o expresiones, dependiendo del tipo de cuadro de lista que se muestre (selecciones o arrays). Leer la documentación

Tabbed windows in 4D Design mode on MacOS Sierra

On macOS SierraEn 4D Developer Edition 64 bits, las aplicaciones tienen ahora la oportunidad de utilizar ventanas con pestañas en lugar de múltiples ventanas. 4D Developer Edition 64-bit puede ahora aprovechar esta novedad de Apple en el entorno de diseño gracias a la nueva opción de ventanas con pestañas disponible en las Preferencias de 4D. Cuando la nueva preferencia está activa, las ventanas del Método y del Editor de formularios pueden combinarse en una sola ventana con pestañas. Leer la documentación

Tabla cruzada en el editor de informes rápidos

El editor de informes rápidos de 64 bits soporta ahora los informes de tablas cruzadas además de los informes de listas, lo que permite a sus usuarios finales apreciar una experiencia de usuario fluida al diseñar los informes. La elección del modo de tabla cruzada le permite mostrar su informe como una tabla dinámica. Tenga en cuenta que todavía es posible reabrir un informe existente creado con los productos 4D de 32 bits. Leer la documentación

Nuevo motor de renderizado para las áreas web

Para una mejor experiencia de usuario y un mejor soporte de las nuevas características HTML, 4D está actualizando su componente interno para objetos de Área Web incrustados en 4D 64-bit a Blink (también utilizado por Google Chrome). Blink es el motor de renderizado más actualizado y bien mantenido que existe. El cambio al marco Blink no requiere ningún cambio de código para su aplicación y no tiene estrictamente ningún impacto en los usos del área Web; todos los comandos y eventos para las Áreas Web incrustadas funcionan igual que antes, excepto algunas preferencias que no son soportadas y son ignoradas. Cuando la opción Usar motor de renderizado web incrustado está marcada, 4D utiliza WebKit en las versiones de 32 bits y Blink en las versiones de 64 bits. Leer la documentación

R-releases en profundidad