En 4D v15 (desde la versión 4D v14 R3), puede asignar el valor del campo especial "id_added_by_converter" que es añadido automáticamente por 4D al convertir una base de datos desde una versión anterior a la v11. Anteriormente, este valor sólo puede ser asignado por 4D, lo que obligó a los desarrolladores a utilizar comandos obsoletos tales como _o_CREATE SUBRECORD para poder añadir nuevos registros en subtablas convertidas.
Con esta nueva posibilidad, puede convertir sus antiguas bases que utilicen subtablas de una forma más progresiva: puede mantener el enlace especial "relación subtabla" y añadir o modificar registros relacionados como si fueran estándar. Una vez que todos sus métodos se hayan actualizado, puede reemplazar la relación especial con uno normal sin ningún cambio en su código.
Por ejemplo, ahora puede escribir:
CREATE RECORD([Empleados]) [Empleados]Last Name:="Jones" CREATE RECORD([Empleados_Niños]) [Empleados_Niños]Nombre:="Natasha" [Empleados_Niños]Birthday:=!12/24/2013! [Empleados_Niños]id_added_by_converter:=4 //No coinciden los tipos en versiones anteriores SAVE RECORD([Empleados_Niños]) SAVE RECORD([Empleados]
Este código funcionará con ambas relaciones especiales y regulares.
En 4D, los campos con el atributo Único deben ser indexados. A partir de 4D v15, ya no es posible definir campos en el editor de estructura con un atributo Único, si no tienen un índice. En versiones anteriores, aún era posible obtener una configuración de este tipo por razones de mantenimiento.
A partir de 4D v14 R3, un nuevo icono se visualiza para las imágenes que se guardan en un formato que no se puede representar en la máquina. La extensión del formato que falta se escribe en la parte inferior del icono:
Este icono se utiliza automáticamente siempre que se muestran estas imágenes.
Este icono indica que la imagen no se puede visualizar o procesar localmente, pero puede almacenarse para su visualización en otra máquina. Este es el caso, por ejemplo, para las imágenes PDF en una plataforma Windows o las imágenes basadas en PICT en un 4D Server de 64 bits en OS X.
En las bases creadas en 4D v15, los métodos se guardan automáticamente en Unicode. En una base convertida, debe seleccionar la opción Guardar los métodos en Unicode en el diálogo de "Compatibilidad" de las Propiedades de la base.
En 4D v15, el editor de métodos de 4D utiliza el lenguaje internacional "Inglés-US" por defecto, independientemente de la versión 4D o de la configuración del sistema local:
Los separadores decimales para números reales deben ahora ser puntos (".") en todas las versiones (y no comas (",")
Las constantes de tipo fecha ahora deben utilizar el formato ISO (!YYYY-MM-DD!)
Los comandos y nombres de constantes deben estar en inglés (este cambio sólo se refiere a las versiones francesas de 4D, ya que este ya era el caso de otros idiomas).
En aplicaciones convertidas de versiones anteriores, tenga cuidado al utilizar fórmulas como EXECUTE FORMULA.
Esta configuración se puede desactivar utilizando la nueva opción Uso de la configuración del sistema regional en la página Métodos/Opciones del diálogo Preferencias de 4D:
Despliegue: como la preferencia Uso de la configuración del sistema regional es local en la máquina, no se incluye en las aplicaciones fusionadas.
Al desplegar aplicaciones fusionadas, hay dos soluciones para el uso de la configuración regional:
Solución 1: eliminar el directorio en.lproj ubicado en el primer nivel de la carpeta Resources de la aplicación 4D Volume Desktop antes de construir la aplicación fusionada final.
Solución 2: editar el contenido del archivo de preferencias de 4D v15 en cada máquina local y definir la llave "use_localized_language" como "true". Un ejemplo de código para efectuar esta operación se encuentra en el apéndice. Después de ejecutarlo, tenga en cuenta que tendrá que reiniciar la aplicación 4D para que la modificación tenga efecto.
Desde 4D v14, en los PC Windows, el uso de la tecla "separador decimal" del teclado numérico produce un resultado diferente para un campo de tipo numérico y para un campo de tipo texto:
Hasta 4D v13: independientemente de si un campo es numérico o texto, el uso de esta tecla en el teclado numérico inserta el separador decimal definido a nivel del sistema (esta definición debe realizarse antes de lanzar 4D;
En 4D v14 y 4D v15: para los campos de tipo Real, utilizando esta tecla del teclado numérico inserta el separador decimal definido a nivel del sistema (sin cambio). Para otros tipos de campos, al presionar esta tecla se inserta el carácter asociado con la tecla, por lo general un punto (.) o coma (,).
Esta diferencia sólo es perceptible en los casos donde el separador decimal del sistema es diferente del mostrado en la tecla. Este es el caso, por ejemplo, de los sistemas francesesdonde el separador decimaldel sistema(coma)no esel asignadoal teclado numérico(punto).
Nota: para más información sobre el formato numérico en bases convertidas, vea la opción de compatibilidad "Utilizar punto y coma como marcadores de posición en formatos numéricos" en la sección Página Compatibilidad.
El número de cifras significativas utilizadas para la representación de los decimales de los números reales se ha reducido en 4D:
en las versiones anteriores, este número era de 15 dígitos
en 4D v15 y versiones posteriores, ahora es 13 dígitos.
Esta modificación sólo concierne a la conversión de números reales en texto, no a la forma en que se representan internamente (almacenamiento), u operaciones aritméticas entre números reales. La exactitud de los números reales no se ve afectada. El objetivo es limitar el número de casos en que las operaciones con números reales producen resultados incorrectos. Por ejemplo, esto nos permitirá obtener resultados válidos en los siguientes casos:
Operación
Resultado en 4D antes de v14R3
Resultado en 4D a partir de 4D v14R3
Cadena (3216.36 - 3214.89)
"1.47000000000025"
"1.47"
Cadena (0.321636-0.321489)
"0.000146999999999953"
"0.000147"
La precisión de los números reales es limitada, por lo que si su aplicación 4D utiliza los primeros 15 dígitos o más de los números reales, es posible que tenga que utilizar otros formatos de datos, como texto o enteros largos (para números de serie o mediciones astronómicas). Tenga en cuenta que en 4D, el grado de precisión por defecto de estas comparaciones se puede modificar utilizando el comando SET REAL COMPARISON LEVEL.
Tuvimos que modificar las representaciones de los punteros en el código de 4D debido al cambio de los métodos a Unicode. Los punteros se optimizaron y soportan funcionalidades adicionales, tales como punteros a elementos de array 2D; ya que es importante mantener la compatibilidad con los componentes y plug-ins compilados, un nuevo tipo de puntero, gestionado de forma transparente por 4D, se ha añadido al lenguaje.
Dos comandos funcionan de manera diferente:
RESOLVE POINTER ahora devuelve -1 en lugar de 0 en el cuarto parámetro para punteros a variables o arrays unidimensionales