Funcionalidades obsoletas y eliminadas Rev. October 2014 Sobre este manual Durante más de 25 años, nuestro principal objetivo ha sido mejorar nuestro producto (utilización de nuevos conceptos y tecnologías) asegurando la compatibilidad de las aplicaciones 4D. Como los pioneros de 4D saben, siempre hemos puesto mucho esfuerzo en la compatibilidad y podemos encontrar aplicaciones 4D en todo el mundo que se crearon hace muchos años, con antiguas versiones de 4D y sistema operativo, que aún están trabajando con las últimas revisiones del producto. Desafortunadamente, a veces se vuelve demasiado difícil combinar antiguas tecnologías con las nuevas: 4D debe traer nuevas tecnologías, nuevas APIs y nuevos paradigmas a los desarrolladores. Los sistemas operativos cambian todos los días y a veces se vuelven obsoletas sus propias APIs antiguas Es por esto que a veces 4D necesita etiquetar algunos comandos y funcionalidades como obsoletos, lo que significa que un día, serán eliminados del lenguaje en una versión principal futura. Informar a los desarrolladores lo que es obsoleto y qué tipo de reemplazo se puede utilizar en su lugar hace que sea mucho más cómodo para ellos implementar el cambio en su código: no hay urgencia, no hay presión y el desarrollador tiene mucho tiempo para hacer los cambios necesarios. Comenzamos cubriendo todas las funciones obsoletas, dando detalles acerca de cada una, seguido de una lista de comandos en desuso. También ofrecemos una tabla de resumen. Cambios en 4D v14 Quick table Previous documents Cambios en 4D v14 Comandos obsoletos XSLT El lenguaje XSLT transforma los datos XML a cualquier formato (XML, HTML, o cualquier otro tipo). Los principales navegadores web, así como también el software 4D han implementado la especificación XSLT 1.0. Actualmente, la tendencia XSLT está en declive porque los desarrolladores consideran que es difícil de usar y de depurar. Siguiendo esta tendencia, así como también los comentarios de los desarrolladores, hemos decidido que la funcionalidad de transformación XSL no será desarrollada para versiones 4D de 64 bits. Nota: para visualizar las tendencias de búsqueda XSLT en Google: #command_3 Sin embargo, para soportar a nuestros clientes que siguen utilizando XSLT en 4D, elegimos confiar en la librería XSL PHP, que ofrece una completa API que le permite realizar todas las operaciones necesarias para sus transformaciones XSL. Esta librería es una herramienta eficaz que puede sustituir fácilmente los comandos _o_XSLT APPLY TRANSFORMATION, _o_XSLT SET PARAMETER y _o_XSLT GET ERROR después de su eliminación. 4D ha producido un documento específico para ayudarle a utilizar PHP XSL como un reemplazo para los comandos XSLT de 4D: Descarga XSLT con el documento técnico PHP (PDF). También le sugerimos que considere el uso de etiquetas 4D cuando se trata de la generación dinámica de páginas HTML, ya que en la mayoría de los casos es más fácil si maneja código HTML como texto sin formato (ver también el comando PROCESS 4D TAGS). Por compatibilidad, las transformaciones XSL se siguen soportando en 4D, pero su uso no se recomienda. El soporte del procesamiento XSLT se eliminará en futuras versiones de 4D. Nota 4D Server 64 bits OS X: XSLT no está disponible con 4D Server 64 bits para OS X. Por lo tanto, al llamar uno de estos comandos desde esta aplicación generará un error 33 "Comando o función no implementado". Imágenes en formato PICT El formato PICT no se soportará en los próximos grandes lanzamientos de 4D y ya no debe utilizarlo en 4D v14. La función AP Is Picture Deprecated, ofrecida a través de 4D Pack a partir de la versión 13.2, tiene la intención de ayudarle a migrar sus aplicaciones. Nota: el formato "PICT" Mac ya ha sido desaprobado por Apple desde varias versiones anteriores de Mac OS (consulte la descripción del formato PICT en Wikipedia). El formato 'PICT' es un formato muy antiguo Mac. Antes de la versión 11, 4D almacenaba todas las imágenes en este formato, incluso en Windows. El formato PICT es obsoleto desde que QuickDraw se declaró obsoleto en 2005. Hay algo importante de entender sobre PICT. Puede almacenar ("encapsular") 2 tipos principales de información: el dibujos en sí (ya sea mapa de bits o vectorial), o un formato más moderno (JPEG, por ejemplo) almacenado en un PICT utilizando QuickTime. (Por lo general, el desarrollador estaba llamando COMPRESS PICTURE con la constante QT Photo compressor). Esto significa que incluso antes cuando todas las imágenes almacenadas en los archivos de datos eran PICT, esos PICT podían, de hecho, contener los archivos JPEG (u otros formatos). Es importante que nuestros clientes dejen de usar PICT, no sólo porque está obsoleto, sino también porque 4D necesita Altura (+ QuickTime si se utilizó COMPRESS PICTURE) para leer PICT en Windows. Esto no es eficiente, y requiere que QuickTime este instalado. Al migrar datos de versiones anteriores a la v11, los desarrolladores deben aplicar el comando CONVERT PICTURE para cada campo imagen de los datos. Al convertir los datos de las versiones más recientes, se recomienda utilizar la función para encontrar imágenes que necesitan ser convertidas. QuickTime El soporte para los codecs de imágenes relacionados con QuickTime ya es obsoleto. Por defecto, el uso de QuickTime está deshabilitado en 4D v14. Sin embargo, por razones de compatibilidad, se puede habilitar su uso utilizando la nueva opción de soporte QuickTime de los comandos SET DATABASE PARAMETER y Get database parameter . Formatos de imagen QuickTime bajo Windows Durante varios años, el manejo de imágenes bajo la versión Windows de QuickTime no ha evolucionado (sólo la parte de vídeo está evolucionando). Tenemos la intención de eliminar el soporte para estas APIs específicas en la próxima versión. 4D para Windows de forma nativa soporta todos los principales formatos (JPEG, PNG, GIF, TIFF, etc.), y también soporta WIC (Windows Imaging Component). Si, en sus datos, usted tiene algunas imágenes guardadas en Windows en un formato específico conocido sólo por QuickTime, puede convertirlos (CONVERT PICTURE). También le recordamos que el soporte para los formatos de imagen de QuickTime se ha eliminado de la versión de 64 bits de 4D Server para Windows como de 4D v12. Asignación dinámica de variables recibidas por medio de HTTP En las versiones anteriores de 4D, el servidor web recopiaba automáticamente el valor de las variables enviadas a través de un formulario web o una URL en las variables 4D cuando tenían el mismo nombre. Por razones de optimización y control, este principio no se mantiene a partir de 4D v14: el valor de las variables Web ya no se asigna automáticamente a las variables 4D. Para recuperar las variables enviadas utilizando un POST o un GET, debe utilizar el comando WEB GET VARIABLES exclusivamente. Para recuperar las imágenes enviadas, debe utilizar los comandos WEB GET BODY PART/WEB Get body part count. Nota: la asignación dinámica también está desactivada por defecto en las bases de datos 4D creadas a partir de la versión 13.4. Sin embargo, por compatibilidad, este mecanismo se mantiene por defecto en las bases de datos creadas con una versión de 4D anterior a la 13.4. En este caso, se puede desactivar el uso de la opción de compatibilidad de asignación de variable automática en la página Compatibilidad de las Propiedades de la base. Dado que este mecanismo es obsoleto, se recomienda desmarcar esta opción en sus bases de datos convertidas (y adaptar su código si es necesario) con el fin de facilitar futuras evoluciones. Números de fuente El uso de números de identificación QuickDraw para designar fuentes es obsoleto y no debe ser utilizarse más. Los comandos Font name y Font number se conservan en 4D v14 por compatibilidad, pero se eliminarán en versiones posteriores. El comando OBJECT SET FONT ahora sólo acepta nombres de fuentes. Suspensión de 4D Chart El plug-in 4D Chart ya no se ofrece en la versión 14 y su desarrollo y mantenimiento se han suspendido de forma permanente. Los comandos 4D en el tema "Gráficos" sólo funcionan con la sintaxis SVG y el comando GRAPH TABLE se ha eliminado. Barra de herramientas en modo Aplicación La barra de herramientas automática que estaba disponible al cambiar al modo Aplicación se ha eliminado y la opción "Barra de herramientas de visualización" desaparece de la página Interfaz de las Propiedades de la base. A partir de 4D v14 R5, la creación de barras de herramientas personalizadas es facilitada por la nueva constante Toolbar form window, utilizada con el comando Open form window. También puede utilizar los comandos SHOW TOOL BAR, HIDE TOOL BAR y Tool bar height en este contexto. Cordial spell check Los diccionarios Cordial ya no se soportan en 4D v14. Sólo los diccionarios Hunspell (así como también el diccionario nativo bajo OS X) pueden utilizarse. Windows en modo no-composite (OS X) El modo composite ahora se utiliza sistemáticamente para todas las ventanas creadas por 4D v14 en OS X. En las versiones anteriores de 4D, era posible crear ventanas usando un antiguo modo de gestión interna (basado en QuickDraw). Este modo se abandonó. Gracias al modo composite, las ventanas 4D tienen un nuevo comportamiento y funciones en OS X: animación cuando se redimensionan ventanas las ventanas se puede redimensionar utilizando cualquier papel y ya no es una caja de redimensionamiento en la parte inferior derecha de las ventanas la compatibilidad con el modo de pantalla HiDPI (o modo "Retina") el modo "pantalla completa" con ocultación automática de la barra de menú principal (a partir de OS X 10.7) soporte para el comando DISPLAY NOTIFICATION bajo OS X (a partir de OS X 10.8). Nota: los plug-ins que requieren QuickDraw deben adaptarse para que sean compatibles con el modo de composite. Para garantizar la compatibilidad con los plug-ins que aún requieren QuickDraw, se implementó una capa de emulación. Para obtener más información, contacte al soporte técnico de 4D. Atajo Opción+F (OS X) El atajo Opción+F, que le permite "forzar" el cambio de la Aplicación a modo Diseño en OS X, se elimina en 4D v14. Es decisión del desarrollador agregar un comando de menú asociado a la acción estándar "Volver a modo Diseño" y un acceso directo personalizado con el fin de gestionar esta operación. Tenga en cuenta que el atajo Opción+Mayús+clic derecho aún se puede seguir utilizando para acceder al menú de depuración. Transacciones automáticas opción de compatibilidad Esta anterior opción de compatibilidad ya no se soporta en las versiones recientes de 4D y se ha eliminado de la página "Compatibilidad" de las Propiedades de la base en 4D 14. Altura Mac2Win Altura Mac2Win se utilizó para llevar 4D a Windows. Es un conjunto de APIs que ayudaron a llevar código Mac OS (pre OS X) a Windows, mediante la traducción de las APIs: filesystem, QuickDraw, Resources, PICT, etc. Fue muy útil y ayudó mucho (los desarrolladores Mac plug-in, por ejemplo, podían mover sus plug-ins a Windows más fácilmente), pero traduce APIs Mac OS antiguas ("obsoleto") y no utiliza la API de Windows nativo moderno: 4D debe eliminar Mac2Win de su código lo más posible. Esto es un trabajo largo y duro y en cada versión de 4D, algunas dependencias se eliminan (y sustituyen por APIs modernas). En este momento, 4D todavía depende en parte, sobre todo para poder manejar la compatibilidad de antiguas bases de datos: Recursos, PICT, parte de la gestión de los eventos de usuario, soporte para los plug-ins de terceros que están integrados utilizando Altura, etc. Mediante la eliminación de recursos en el archivo .RSR para separar los archivos en la carpeta "Recursos" y mediante la conversión (CONVERT PICTURE) a no-PICT, el desarrollador 4D estará listo una vez 4D ha eliminado Altura. Pero las primeras personas preocupadas por este gran paso son los desarrolladores del plug-in. Ellos deben dejar de usar Altura tan pronto como sea posible, lo que significa que tienen que reescribir algunas partes de su código fuente Windows. (Ya les habíamos advertido desde hace varios años. Subtablas En varias versiones principales, 4D ha advertido a los desarrolladores en contra del uso de las subtablas. Desde 4D v11, es imposible crear un campo del tipo subtabla. Los subregistros tienen algunas limitaciones conocidas. Por ejemplo, siempre se cargan en memoria; no se manejan por los comandos SEND RECORD o DUPLICATE RECORD. No tenemos planes de eliminar el soporte para las subtablas en un futuro próximo, pero es realmente el momento de que los desarrolladores conviertan sus subtablas a tablas N-> regulares porque tenemos la intención de eliminarlas en una futura versión principal de 4D. Los desarrolladores que utilizan subtablas por razones de rendimiento (algunas situaciones específicas en las que la carga de los registros relacionados de era lenta) pueden estar tranquilos, especialmente con v12: utilizar las relaciones N <> 1 clásicas es muy rápido. Básicamente, hay dos formas principales para eliminar subtablas (nota: lo siguiente no es una tecnología completa de punta; sólo una visión general rápida): Antes de la conversión de una estructura pre-v11: en 2004, crear la tabla N apropiada y el campo ID en la tabla 1 (si no está ya allí). Luego, cambie el código en todas las partes es necesario (ver más adelante). Después de la conversión: en esta situación, 4D ha reemplazado la subtabla con una tabla N usando una relación especial, que permite que el lenguaje para trabajar con la subselección y los subregistros. El desarrollador 4D necesita eliminar esta relación especial, sustituirla por una relación normal y cambiar el código por todas partes si es necesario (ver más adelante). Lo que queremos decir con "cambiar el código por todas partes si es necesario" es, básicamente: Crear los nuevos formularios, actualizar los formularios incluidos En los métodos (proyecto, formulario, objeto, etc.): Remplace todos los comandos del tema "Subregistros" con el comando Selection o Record correspondiente (por ejemplo, reemplazar CREATE SUBRECORD con CREATE RECORD, llenando los campos ID) Explícitamente cargar los registros N cuando sea necesario Note: a partir de 4D v14 R3, puede asignar valores a los campos "id_added_by_converter" especiales que se agregan automáticamente por 4D cuando convierte una base de datos que contiene subtablas. Esto le permite mantener el enlace "relación subtabla", y agregar o modificar registros relacionados, sin necesidad de usar comandos en desuso tales como CREATE SUBRECORD. Una vez que haya actualizado sus métodos, estas relaciones especiales pueden ser sustituidas por otros estándares con ningún cambio en su código. Modo No Unicode El soporte al modo ASCII (sinónimo de "modo no Unicode") conduce a un bajo rendimiento en la manipulación de texto, ya que se debe convertir desde y hacia Mac-roman cada vez que se utiliza en la estructura legacy-converted. Planeamos eliminar el modo ASCII en futuras versiones principales. Note que el soporte para el modo ASCII ya se retiró para estructuras compiladas que se ejecuten bajo 4D Server 64 bits para Windows. Los desarrolladores 4D deben, para estructuras convertidas, activar el modo Unicode. La documento PDF Conversión a 4D v14 da pistas sobre este tema. También note que el soporte el modo ASCII no está disponible en la versión 4D Server 64 bits para OS X. Recursos Mac Esta es otra antigua tecnología Mac OS, en desuso desde Mac OS X 10.4 (Tiger, 2005). Los recursos se utilizan para almacenar datos estructurados, como texto y cadenas (localización), así como también iconos, etc. Básicamente, podemos decir que no son los recursos los que están en desuso, es su soporte en disco, conocido como el resource fork. El resource fork es parte del sistema de archivos de Mac OS y desde el inicio de Mac OS X, Apple ha tratado de eliminar este soporte, ya que no es compatible con otros sistemas de archivos (Unix, Windows), y es la fuente de una gran cantidad de problemas cuando los archivos se transfieren a través de la red. En Windows, este mecanismo se emula y y los recursos Mac residen en un archivo .RSR. Pero aún así, incluso si aún hay APIs para manejar los recursos (y Mac OS maneja de forma transparente los recursos almacenados en un data fork), ya no se recomienda utilizar este viejo mecanismo por varias razones: Los textos y las cadenas son Mac-roman. No se puede almacenar Unicode en recursos de tipo TEXT o STR # Los recursos PICT almacenan PICTs: no es moderno, obsoleto, sin transparencia, etc. (Consulte el tema "PICT" arriba.) El conteo de los recursos y el tamaño de los recursos son limitados (unos 2.700 recursos o 16 MB) Hemos eliminado soporte para comandos de escritura/creación de recursos La gran mayoría de las aplicaciones 4D que utilizan recursos están, de hecho, utilizando recursos "Strings List", 'STR#'. 4D ofrece las herramientas para cambiar fácilmente del STR # a XLIFF: El componente 4D Pop puede crear automáticamente los archivos XLIFF mediante la lectura y transferir el contenido de la STR #. Todas las rutinas y las expresiones que hacen referencia a trabajo STR# sin cambio con XLIFF. Por ejemplo, si la etiqueta de un botón o un menú era ":15000,3" (que significa "conseguir el tercer elemento de STR# ID 15000"), 4D cargará el XLIFF apropiado (si existe). Para otros tipos de recursos: Poner los recursos en archivos separados dentro de la carpeta Resources (crear subdirectorios si es necesario): Guardar recursos 'TEXT' en archivos XLIFF o .txt Guardar recursos 'PICT' como archivos .jpg/.png/etc. separado Guardar recursos 'PICT' + MASK’ como archivos png Utilizar (en Mac) icns en lugar de ICON o iconos de colores Guardar todos los recursos privados como sea apropiado para usted (normalmente: guardar como un archivo binario con una extensión específica) Utilice la carpeta "Recursos" para almacenar sus recursos. Utilice Get 4D folder (carpeta de recursos actuales) para obtener dinámicamente la ruta padre para sus recursos. API QuickDraw Hay dos tipos de plug-ins: los que utilizan el nuevo plug-in API y los que siguen utilizando el viejo (con QuickDraw). Para los plugins que utilizan la vieja caja de herramientas (con QuickDraw): para mantener la compatibilidad, el dibujo/renderización ya no se realiza directamente en un puerto QuickDraw, como en las versiones anteriores, pero en su lugar a través de un área GWorld QuickDraw offscreen dedicada al plugin. En consecuencia, hay que respetar algunas reglas, como los plug-ins no deben modificar el puerto actual definido por el contenedor (objeto formulario). Para los plug-ins que utilizan la nueva caja de herramientas: sólo se utiliza esta nueva caja de herramientas y no QuickDraw: (ver http://sources.4d.com/trac/4d_4dpluginapi/wiki/native_drawing) Lenguaje: comandos obsoletos o eliminados Remplazado con Obsoleto Estado desde actual - v11 v11 Obsoleto Obsoleto ARRAY TEXT (uso de SVG con el comando GRAPH) C_LONGINT C_TEXT (siempre que la base esté en Unicode) v12 v12 v12 v12 Obsoleto Obsoleto Obsoleto Obsoleto ADD RECORD en la tabla n de una relación N->1 Form event y On data change MODIFY RECORD en la tabla n de una relación N->1 v12 v12 v12 Obsoleto Obsoleto Obsoleto Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado Remplazar con Form event y el evento apropiado v12 v12 v12 v12 v12 v12 v12 v12 v12 Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto GRAPH (utilizando 4D Graph Area) Utilice SVG picture en su lugar v12 Obsoleto GRAPH TABLE Crea los datos en arrays y llama GRAPH en una imagen SVG v13 Desactivado en 4D v14 Eliminar en código (no hace nada desde v11) v11 Obsoleto OBJECT SET ENABLED v12 Obsoleto PICTURE CODEC LIST CONVERT PICTURE v12 v12 Obsoleto Obsoleto WRITE PICTURE FILE/PICTURE TO BLOB v12 Obsoleto READ PICTURE FILE/CONVERT PICTURE v12 Obsoleto WRITE PICTURE FILE v12 Obsoleto - v12 v12 v12 v12 v12 v12 v12 Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto Obsoleto - v12 Obsoleto - v12 Obsoleto Comando Tema Entorno 4D: ADD DATA SEGMENT DATA SEGMENT LIST Tema Compilador: ARRAY STRING C_GRAPH C_INTEGER C_STRING Tema Entrada de datos: ADD SUBRECORD Modifed MODIFY SUBRECORD Tema Eventos formulario: Activated After Before Deactivated During In break In footer In header Outside call Tema Gráficos: Tema listas jerárquicas: REDRAW LIST Tema Objetos (Formularios): DISABLE BUTTON/ENABLE BUTTON Tema Imágenes: PICTURE TYPE LIST QT COMPRESS PICTURE QT COMPRESS PICTURE FILE QT LOAD COMPRESS PICTURE FROM FILE SAVE PICTURE TO FILE Tema Recursos: todos los comandos que escriben/crean recursos, por ejemplo: ARRAY TO STRING LIST Create resource file DELETE RESOURCE Get component resource ID SET PICTURE RESOURCE SET RESOURCE SET RESOURCE NAME SET RESOURCE PROPERTIES SET STRING RESOURCE SET TEXT RESOURCE - v12 Obsoleto USE EXTERNAL DATABASE USE INTERNAL DATABASE SQL LOGIN SQL LOGOUT v12 v12 Obsoleto Obsoleto Tema Cadena: Convert case CONVERT FROM TEXT/Convert to text si es necesario. v11 Obsoleto Remover el comando del método si la conversión no es necesaria (lo que significa que la base corre en modo Unicode) v11 Obsoleto v11 v11 v11 Obsoleto Obsoleto Obsoleto Remplazar “nnn SUBRECORD” y “nnnSUBSELECTION” con una acción en el registro N o N-selection de N-table en una N->1 relation v12 Obsoleto - v12 Obsoleto Utilice los identificadores de fuente QuickDraw está obsoleto, de manera que los comandos Font number y Font name están obsoletos. El comando OBJECT SET FONT ya no acepta un parámetro LongInt para la fuente: este parámetro ahora es una Cadena y debe especificar el nombre de fuente. v14 Obsoleto v14 Obsoleto. Puede ser utilizado para una aplicación convertida; con la constante Automatic Platform v12 Obsoleto - - Desactivado en 4D v14 _o_SET CGI EXECUTABLE - v12 _o_SET WEB DISPLAY LIMITS Utilice modo no contextual v12 _o_SET WEB TIMEOUT Utilice modo no contextua v12 _o_Web Context Utilice modo no contextua v12 Utilice el módulo libxslt PHP o el comando MissingRef v14R4 Obsoleto Utilice el módulo libxslt PHP o el comando MissingRef Utilice el módulo libxslt PHP o el comando MissingRef v14R4 v14R4 Obsoleto Obsoleto Tema SQL: ISO to Mac Mac to ISO Mac to Win Win to Mac Tema Subregistros: todos los comandos Tema Documentos del sistema: Document type Tema Entorno sistema: Font name Font number Tema Interfaz de Usuario: Get platform interface/SET PLATFORM INTERFACE HIDE TOOL BAR/SHOW TOOL BAR Tema servidor web: Tema XML: _o_XSLT APPLY TRANSFORMATION _o_XSLT GET ERROR _o_XSLT SET PARAMETER Desactivado en 4D v13 Desactivado en 4D v13 Desactivado en 4D v13 Desactivado en 4D v13 Comandos 4D PACK: (ver Comandos 4D Pack eliminados para más detalles) AP AVAILABLE MEMORY GET MEMORY STATISTICS - Eliminado en v14 AP HELP INDEX No compatible con Windows Vista. No recomendamos utilizar este comando. No compatible con Windows Vista. No recomendamos utilizar este comando. No compatible con Windows Vista. No recomendamos utilizar este comando. No compatible con Windows Vista. No recomendamos utilizar este comando. - Eliminado en v14 Eliminado en v14 Eliminado en v14 Eliminado en v14 AP HELP ON HELP AP HELP ON KEY AP CLOSE HELP - AP Create method METHOD SET CODE y METHOD SET ATTRIBUTE AP Modify method - Eliminado en v14 Eliminado en v14 AP Does method exist METHOD GET NAMES - Eliminado en v14 AP Get picture type Comandos del tema "Imágenes" - Eliminado en v14 AP Get templates Obsoleto - Eliminado en v14 _AP External clock Widget TimePicker - AP SET CLOCK Widget TimePicker - AP Rect Dragger SET DRAG ICON - Eliminado en v14 - Eliminado en v14 AP Timestamp to GMT $myDate:=String(Current date;ISO Date GMT;Current time) // devuelve por ejemplo: "2014-05-06T12:19:23Z" AP SET PARAM Obsoleto - AP GET PARAM Obsoleto - Eliminado en v14 Eliminado en v14 Eliminado en v14 Eliminado en v14 _o_XSLT APPLY TRANSFORMATION _o_XSLT APPLY TRANSFORMATION ( fuenteXML ; hojaXSL ; resultado {; compileHoja} ) Parámetro fuenteXML Tipo Cadena, BLOB hojaXSL Cadena, BLOB resultado Cadena, BLOB compileHoja Booleano Descripción Nombre o ruta de acceso del documento XML fuente o BLOB que contiene el XML fuente Nombre o ruta de acceso del documento que contiene la hoja de estilo XSL o BLOB que contiene la hoja de estilo XSL Nombre o ruta de acceso del documento que recibe el resultado de la transformación XSLT o BLOB que recibe el resultado de la transformación XSLT True = Optimiza la transformación XSLT False o si se omite = No optimización, borrar el archivo XSL compilado (si lo hay) Compatibility note A partir de 4D v14 R4, los comandos de transformación XSL son obsoletos. Por razones de compatibilidad, aún están soportados en 4D pero le recomendamos que deje de utilizarlos. En futuras versiones de 4D, ya no será posible utilizar la tecnología XSLT. Para obtener más información, consulte la sección Presentación de los comandos XML utilitarios . PROCESS 4D TAGS PROCESS 4D TAGS ( plantillaEntrada ; datosSalida {; param}{; param2 ; ... ; paramN} ) Parámetro plantillaEntrada datosSalida param Tipo Texto, BLOB Texto, BLOB Texto, Number, Fecha, Hora, Puntero Descripción Datos que contiene las etiquetas a tratar Datos procesados Parámetros pasados a la plantilla en ejecución Descripción El comando PROCESS 4D TAGS provoca el procesamiento de las etiquetas de transformación 4D contenidas en el parámetro plantillaEntrada (campo o variable de tipo Texto o BLOB) mientras opcionalmente inserta valores utilizando los valores vía los parámetros param y devuelve los datos resultantes en datosSalida. Este comando permite ejecutar un texto de tipo "template" que contiene las etiquetas y las referencias a las expresiones o variables 4D y produce un resultado dependiendo del contexto de ejecución y/o de los valores pasados en parámetro. Por ejemplo, puede utilizar este comando para generar y guardar las páginas HTML basadas en páginas semi-dinámicas que contienen las etiquetas de transformación 4D (sin que sea necesario que el servidor Web de 4D se inicie). Puede utilizarlas para enviar mensajes de correo electrónico en formato HTML que contengan procesamientos y/o referencias a los datos contenidos en la base a través de 4D Internet Commands. Es posible procesar cualquier tipo de datos basados en texto, tales como XML, SVG o texto multi-estilo. Pase los datos que contienen las etiquetas a procesar en el parámetro plantillaEntrada. Este parámetro puede ser un campo o una variable de tipo Texto o BLOB. El tipo Texto por lo general es suficiente (los parámetros pueden recibir hasta 2 GB de texto). Nota de compatibilidad: a partir de la versión 12 de 4D, cuando utiliza parámetros de tipo BLOB, el comando considera automáticamente que el conjunto de caracteres utilizado por los BLOBs es MacRoman. Para mayor eficiencia, se recomienda utilizar los parámetros de tipo Texto para los cuales los procesos se efectúan en modo Unicode. Todas las etiquetas de transformación de 4D son soportadas (4DTEXT, 4DHTML, 4DSCRIPT, 4DLOOP, 4DEVAL, etc.), Nota: en caso de utilizar la etiqueta 4DINCLUDE fuera del marco del servidor web (proceso web): Con 4D en modo local o 4D Server, la carpeta por defecto es la carpeta que contiene el archivo de estructura de la base, Con 4D en modo remoto, la carpeta por defecto es la carpeta que contiene la aplicación 4D. El comando PROCESS 4D TAGS soporta un número indefinido de parámetros param que se pueden insertar en el código que se ejecuta. Al igual que con los métodos proyecto, dichos parámetros pueden contener valores escalares de tipos variados (texto, fecha, hora, entero largo, real, etc). También puede utilizar los arrays, por intermedio de punteros de arrays. Dentro del código procesado por las etiquetas 4D, estos parámetros son accesibles por medio de argumentos estándar ($1, $2, etc.), al igual que en los métodos 4D (ver ejemplo). Un conjunto dedicado de variables locales se define en el contexto de ejecución del comando PROCESS 4D TAGS. Estas variables pueden ser escritas o leídas durante el procesamiento. Después de la ejecución del comando, el parámetro datosSalida recibe los datos del parámetro plantillaEntrada, junto con el resultado del proceso de las etiquetas 4D que contiene, cuando aplica. Si datosEntrada no contiene las etiquetas 4D, el contenido de datosSalida es idéntico al de plantillaEntrada. El parámetro datosSalida puede ser un campo o una variable, pero debe ser del mismo tipo que el parámetro plantillaEntrada. Nota: este comando ya no llama al Método base On Web Authentication. Ejemplo 1 Este ejemplo carga un documento de tipo 'template', procesa las etiquetas que contiene y luego lo guarda: C_BLOB($Blob_x) C_BLOB($blob_out) C_TEXT($inputText_t) C_TEXT($outputText_t) DOCUMENT TO BLOB("mytemplate.txt";$Blob_x) $inputText_t:=BLOB to text($Blob_x;UTF8 text without length) PROCESS 4D TAGS($inputText_t;$outputText_t) TEXT TO BLOB($outputText_t;$blob_out;UTF8 text without length) BLOB TO DOCUMENT($document;$blob_out) Ejemplo 2 Este ejemplo genera un texto utilizando los datos de los arrays: ARRAY TEXT($array;2) $array{1}:="hello" $array{2}:="world" $input:="<!--#4DEVAL $1-->" $input:=$input+"<!--#4DLOOP $2-->" $input:=$input+"<!--#4DEVAL $2->{$2->}--> " $input:=$input+"<!--#4DENDLOOP-->" PROCESS 4D TAGS($input;$output;"elements = ";->$array) // $output = "elements = hello world" COMPRESS PICTURE COMPRESS PICTURE ( imagen ; metodo ; calidad ) Parámetro imagen Tipo Imagen metodo calidad Cadena Entero largo Descripción Imagen a comprimir Imagen comprimida Método de compresión cadena 4 caracteres Calidad de compresión (1..1000) Nota de compatibilidad Este comando llama mecanismos obsoletos y sólo se conserva por razones de compatibilidad. Fue reemplazado favorablemente por el comando CONVERT PICTURE. Descripción El comando COMPRESS PICTURE comprime la imagen que se encuentra en el campo o variable imagen. El parámetro metodo es una cadena de 4 caracteres que indica el tipo de compresión. En este parámetro debe pasar una de las constantes del tema Compresión de imágenes. El parámetro calidad es un entero entre 1 y 1 000 indicando la calidad de la imagen comprimida. En general, reducir la calidad permite una mejor compresión de la imágen. Advertencia: el radio de compresión posible para una calidad dada depende del tamaño y la naturaleza de la imágen que esté comprimiendo. La compresión de imágenes pequeñas podría no producir una reducción del tamaño. CONVERT PICTURE CONVERT PICTURE ( imagen ; codec {; compresion} ) Parámetro imagen Tipo Imagen codec compresion Cadena Real Descripción Imagen a convertir Imagen convertida Identificador de codec de imagen Calidad de compresión Descripción El comando CONVERT PICTURE convierte imagen en un nuevo tipo. El parámetro codec indica el tipo de imagen a generar. Un codec puede ser una extensión (por ejemplo, “.gif”) o un tipo Mime (por ejemplo, “image/jpg”). Puede obtener una lista de codecs disponibles utilizando el comando PICTURE CODEC LIST. Si el campo o variable imagen es de tipo compuesto (si por ejemplo es el resultado de la acción copiar -pegar), sólo la información correspondiente al tipo codec se conserva en la imagen resultante. Nota: si el tipo de codec solicitado es elmismo que el tipo original de la imagen, no se efectúa ninguna conversión y la imagen se devuelve "tal cual" (excepto cuando se utiliza el parámetro compresion, ver a continuación). El parámetro opcional compresion, si se pasa, permite definir la calidad de compresión a aplicar a la imagen resultante cuando se utiliza un Codec compatible. En compresion, pase un valor entre 0 y 1 para especificar la calidad de la compresión, donde 0 es la calidad más mediocre (alta compresión) y 1 la mejor calidad (compresión baja). Este parámetro sólo se tiene en cuenta cuando el codec soporta la compresión (por ejemplo JPEG o HDPhoto) y es soportado por los APIs WIC y ImageIO. Para mayor información sobre los APIs de gestión de imagen en 4D, consulte la sección Introducción imágenes. Por defecto, si omite el parámetro compresion, se aplica la mejor calidad (compresion =1). Ejemplo 1 Conversión de la imagen vpFoto al formato jpeg: CONVERT PICTURE(vpFoto;".jpg") Ejemplo 2 Conversión de una imagen con calidad del 60%: CONVERT PICTURE(vPicture;".JPG";0.6) Open form window Open form window ( {tabla ;} nomForm {; tipo {; posH {; posV {; *}}}} ) -> Resultado Parámetro tabla nomForm tipo posH posV * Resultado Tipo Tabla Cadena Entero largo Entero largo Entero largo Operador WinRef Descripción Tabla del formulario o tabla por defecto, si se omite Nombre del formulario Tipo de la ventana Posición horizontal de la ventana Posición vertical de la ventana Conservar la posición actual y el tamaño de la ventana Número de referencia de la ventana Descripción El comando Open form window abre una nueva ventana utilizando las propiedades de tamaño y de redimensionamientos del formulario nomForm. Note que el formulario nomForm no se muestra en la ventana. Si quiere mostrar el formulario, tiene que llamar un comando que cargue un formulario (por ejemplo ADD RECORD). Por defecto (si no se pasa el parámetro tipo), se abre una ventana estándar con una casilla de cerrar. A diferencia del comando Open window, ningún método está asociado a la casilla de cierre de la ventana. Al hacer clic en esta casilla se cancela y cierra la ventana, excepto si el evento de formulario On Close Box ha sido activado para el formulario. En este caso, el código asociado con este evento se ejecutará. Si el formulario nomForm es redimensionable, la ventana abierta tendrá una casilla de zoom como también una casilla de redimensionamiento. Nota: para conocer las principales propiedades de un formulario, utilice el comando FORM GET PROPERTIES. El parámetro opcional tipo permite especificar un tipo de ventana. Este parámetro debe contener una de las siguientes constantes predefinidas del tema Abrir ventana formulario): Constante Tipo Valor Form has full screen mode Mac Modal form dialog box Movable form dialog box Palette form window Plain form window Pop up form window Sheet form window Toolbar form window Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 65536 1 5 1984 8 32 33 35 Notas: Los atributos de la ventana creada (casilla de redimensionamiento, casilla cerrar...) dependen de las especificaciones de interfaz del sistema operativo para el tipo elegido. Por lo tanto es posible obtener diferentes resultados dependiendo de la plataforma utilizada. Las constantes Has toolbar button Mac OS y Has full screen mode Mac deben añadirse a una de las otras constantes de tipo. Para mayor información sobre los tipos de ventanas, consulte la sección Tipos de ventanas. Note que sólo los tipos listados en el tema Abrir ventana formulario pueden utilizarse con el comando Open form window. Cuando se pasa la constante Toolbar form window, la ventana se crea con la ubicación, el tamaño y las propiedades gráficas de una barra de herramientas, es decir: La ventana se mostrará siempre justo debajo de la barra de menús. El tamaño horizontal de la ventana se ajustará automáticamente para llenar todo el espacio horizontal disponible en el escritorio (en OS X) o dentro de la ventana principal de 4D (en Windows). El tamaño vertical de la ventana se basa en las propiedades del formulario, como todos los otros tipos de ventanas formulario. La ventana no tiene borde, no se puede mover y no se puede cambiar el tamaño de forma manual, y los parámetros posH, posV y * se ignoran si están presentes. No es posible crear dos ventanas de la barra de herramientas diferentes al mismo tiempo. Si se llama Open form window con el tipo Toolbar form window mientras ya existe una ventana barra de herramientas, se genera un error -10613 ("No se puede crear dos ventanas formulario de tipo barra de herramientas"). Barra de herramientas y modo pantalla completa en OS X: si su aplicación muestra a la vez una ventana barra de herramientas y una ventana estándar que admiten el modo de pantalla completa (opción Has full screen mode Mac), las normas de interfaz requieren que se oculte la barra de herramientas cuando una ventana estándar pase a modo pantalla completa. Para saber si una ventana ha cambiado al modo pantalla completa, simplemente pruebe si su tamaño vertical es exactamente el mismo que la altura de la pantalla (consulte el comandos HIDE TOOL BAR). El parámetro opcional posH permite definir la posición horizontal de la ventana. Puede pasar una posición definida, expresada en puntos, a este parámetro (consulte el comando Open window) o una de las siguientes constantes predefinidas ubicadas en el tema Abrir ventana formulario: Constante Tipo Valor Horizontally centered On the left On the right Entero largo Entero largo Entero largo 65536 131072 196608 El parámetro opcional posV permite definir la posición vertical de la ventana. Puede pasar una posición definida, expresada en puntos, a este parámetro (consulte el comando Open window) o una de las siguientes constantes predefinidas del tema Abrir ventana formulario: Constante Tipo Valor Vertically centered Entero largo 262144 At the top Entero largo 327680 At the bottom Entero largo 393216 Estos parámetros tienen en cuenta la presencia de la barra de herramientas, de la barra de menús y del tamaño actual de la ventana de la aplicación (en Windows). Si pasa el parámetro opcional *, la posición y el tamaño actual de la ventana se memorizan al cerrar. Cuando la ventana se abre nuevamente, se respetan su posición y tamaño anterior. En este caso, los parámetros posV y PosH sólo se utilizan cuando se abre la ventana por primera vez. Ejemplo 1 La siguiente instrucción abre una ventana estándar o una casilla cerrar y se ajusta automáticamente al tamaño del formulario de "Entrada". Como el formulario ha sido definido como redimensionables, la ventana tiene una casilla de redimensionamiento y una casilla de zoom: $winRef :=Open form window([Tabla1];"Entrada") Ejemplo 2 La siguiente instrucción abre una paleta flotante en la parte superior izquierda de la pantalla basada en un formulario de proyecto llamado "Herramientas". Esta paleta utiliza la última posición en cada nueva apertura: $winRef :=Open form window("Herramientas";Palette form window;On the left;At the top;*) CREATE SUBRECORD CREATE SUBRECORD ( subtabla ) Parámetro subtabla Tipo Subtabla Descripción Subtabla en la cual crear un nuevo subregistro Nota de compatibilidad Las subtablas no se soportan a partir de la versión 11 de 4D. Un mecanismo de compatibilidad asegura el funcionamiento de este comando en bases compartidas; sin embargo, es recomendable remplazar las subtablas con tablas relacionadas estándar. Descripción CREATE SUBRECORD crea un nuevo subregistro en subtabla y lo convierte en el subregistro actual. El nuevo subregistro se guarda únicamente cuando el registro padre se guarda. El registro padre puede guardarse con un comando como SAVE RECORD o cuando el usuario valida el registro. Si no hay registro actual, CREATE SUBRECORD no tiene efecto. Para añadir un nuevo subregistro en un formulario de entrada de subregistros, utilice ADD SUBRECORD. Ejemplo El siguiente ejemplo es un método de objeto para un botón. Cuando se ejecuta (cuando el usuario hace clic en el botón), crea nuevos subregistros para niños en la tabla [Personas]. El bucle Repeat permite al usuario añadir niños hasta que se haga clic en el botón Cancelar. El formulario muestra los niños en un subformulario, pero no permite la entrada directa de datos porque la opción Editable no se ha desactivado: Repeat ` Se repite hasta que el usuario haga clic en cancelar vNiño:=Request("Nombre (cancelar si termina):") `Si el usuario hace clic en Aceptar If(OK=1) ` Adición de un nuevo subregistro para un niño CREATE SUBRECORD([Personas]Niños) ` Asignación del nombre del niño al subcampo [Personas]NombreNiño:=vNiño End if Until(OK=0) DISABLE BUTTON DISABLE BUTTON ( {* ;} objeto ) Parámetro * objeto Tipo Operador Objeto de formulario Descripción Si se especifica, objeto es un nombre de objeto (cadena) Si se omite, objeto es una variable Nombre de objeto (si se especifica *), o Variable (si se omite *) Compatibility note En 4D a partir de la versión 12, el comando DISABLE BUTTON es declarado obsoleto y se conserva únicamente por razones de compatibilidad. Su alcance, incluye todas las instancias de la variable designada y no sólo las del formulario actual, no corresponde a las del tema "Propiedades de los objetos". DISABLE BUTTON puede reemplazarse favorablemente con el comando OBJECT SET ENABLED. Descripción El comando DISABLE BUTTON desactiva los objetos de formulario especificados por objeto. Un botón o un objeto desactivado no reacciona a clics o a atajos de teclado, y aparece tenue o en gris. Nota: desactivar un botón o un objeto no evita que pueda cambiar su valor por programación. Si especifica el parámetro opcional *, indica un nombre de objeto (una cadena) en objeto. Si omite el parámetro opcional *, indica que el parámetro objeto es un campo o una variable. En este caso, usted especifica una referencia de un campo o de una variable (variable tipo objeto únicamente) en lugar de una cadena. Para mayor información sobre nombres de objetos, consulte la sección . Este comando (a pesar de lo que su nombre sugiere) puede aplicarse a los siguientes tipos de objetos: Botón, Botón opción, Botón 3D, Botón invisible, Botón inverso Botón radio, Botón radio 3D, Botón imagen Casilla de selección, Casilla de selección 3D Menú desplegable, Lista desplegable, Combo Box, Menú/Lista desplegable Termómetro, Regla Nota: este comando no tiene efecto con un objeto que tiene asignada una acción automática (4D cambia el estado del control cuando es necesario), excepto para acciones de Aceptar y Cancelar. Ejemplo 1 Este ejemplo desactiva el botón bValidar: DISABLE BUTTON(bValidar) Ejemplo 2 Este ejemplo desactiva todos los objetos de formulario que tienen nombres que contiene “btn”: DISABLE BUTTON(*;"@btn@") Ejemplo 3 Ver ejemplo para el comando OBJECT SET TITLE. Quick table Explicación de los valores para la columna “Estado”: Eliminado: ya no está disponible en la versión actual. Próximamente: estamos pensando en la eliminación de la funcionalidad en la próxima versión principal después de 4D v14 Más adelante: se eliminará en una versión futura principal OS: depende de tecnologías OS oficialmente obsoletas (por ejemplo: formato PICT). Estado es el mismo que más tarde, pero un sistema operativo podría retirar el soporte antes que nosotros Funcionalidad Remplazar con Estado Barra de herramientas automática del modo Aplicación Open form window con Toolbar form window Eliminado Opción de compatibilidad "Transacciones automáticas durante la entrada de datos" n/a Eliminado Diccionarios ortográficos Cordial Diccionarios Hunspell (así como también el diccionario nativo bajo Mac) Eliminado Ventanas en modo no compositing bajo Mac Sólo el modo compositing está soportado Eliminado "Option F/Alt F" Menú con elemento asociado a la acción estándar "Volver al modo Diseño" U OPCION-MAYÚS CLIC DERECHO Eliminado 4D Chart SVG/Web area/PHP Eliminado Fuentes Mac OS QuickDraw Nombres de fuentes Obsoleto Altura Mac2Win Desarrolladores de Plug-in: utilice el código Windows nativo Obsoleto Asignación dinámica de las variables recibidas a través de HTTP (opción de compatibilidad para las bases creadas antes de la versión 13.4) Comando WEB GET VARIABLES (para recuperar variables). Obsoleto Comandos WEB GET BODY PART/WEB Get body part count (para recuperar archivos enviados) Modo No Unicode (base pre-v11 convertida) Pasar a Unicode Obsoleto Soporte de QuickTime (opción de compatibilidad utilizando SET DATABASE PARAMETER(QuickTimeSupport;1)) Utilice los formatos nativos Obsoleto API QuickDraw Nuevo plug-in SDK para los plug-ins de terceras partes Obsoleto Subtablas Utilice las tablas N->1 Obsoleto XSLT Utilice el módulo libxslt PHP o el comando PROCESS 4D TAGS Obsoleto Mac Resources (cicn, PICT) Utiliza la carpeta "Resources" Por compatibilidad, aún puede utilizarlo en bases convertidas. Ya no soportamos comandos de acceso a escritura. OS PICT Formatos modernos OS Previous documents This document concerns the 4D v14 product range. For reference, you can consult previous documents (PDF) describing deprecated features in prior product ranges, available here: Deprecated and Removed Features in 4D v13 - (Rev. 20 Feb 2012) Deprecated and Removed Features in 4D v12 - (Rev. 03 Jun 2010)