Saltar al contenido principal
Versión: 21 R4 BETA

Métodos

Un método es básicamente un trozo de código que ejecuta una o varias acciones. Un método se compone de instrucciones.

Una línea de instrucción realiza una acción, y puede ser simple o compleja. Cada instrucción generalmente consiste en una línea en el método (si es necesario, puede ser dividida utilizando el carácter \).

El tamaño máximo de un método está limitado a 2 GB de texto o 32.000 líneas de código.

Tipos de métodos

En el lenguaje 4D, hay varias categorías de métodos. La categoría depende de cómo se les pueda llamar:

TipoContexto de llamadaAcepta los parámetrosDescripción
Métodos proyectoBajo demanda, cuando el nombre del método del proyecto es llamadoPuede contener código para ejecutar acciones personalizadas. Una vez creado un método proyecto, pasa a formar parte del lenguaje del proyecto.
Método objeto (widget)Automático, cuando un evento involucra al objeto al que se asocia el métodoNoPropiedad de un objeto formulario (también llamado widget)
Método formularioAutomático, cuando un evento involucra al formulario al que se asocia el métodoNoPropiedad de un formulario. Puede utilizar un método formulario para gestionar datos y objetos, pero generalmente es más sencillo y eficiente utilizar un método objeto para estos fines.
Trigger (o método tabla)Automático, cada vez que se manipulan los registros de una tabla (Añadir, Eliminar y Modificar)NoPropiedad de una tabla. Los triggers son métodos que pueden evitar operaciones "ilegales" con los registros de su base.
Método baseAutomático, cuando se produce un evento de la sesión de trabajoSí (predefinido)Hay 16 métodos base en 4D.
ClassSe llama automáticamente cuando un objeto de la clase es instanciado o cuando una función de la clase es ejecutada en una instancia de un objeto en cualquier otro método o en un campo de base de datos.sí (funciones de clase)Una Clase se utiliza para declarar y configurar la clase constructor, propiedades y funciones de objetos. Ver Clases y clase Función.

Tokens de lenguaje

El lenguaje 4D incluye un sistema único de tokenización para las constantes, los comandos, las tablas, los campos y los nombres de las palabras clave que se utilizan en el código. La tokenización de estos nombres implica que, a medida que se escriben en el editor de código, se almacenan internamente como referencias absolutas (números) y, posteriormente, se restauran como texto durante la ejecución o la visualización, según el contexto. Esto le permite garantizar que el código siempre será interpretado correctamente, incluso si renombra sus tablas o campos, o cuando los comandos del lenguaje 4D se renombran en el curso de las diferentes versiones de la aplicación.

Nota: esto también garantiza la traducción automática del código cuando se ha activado la preferencia "Utilizar la configuración regional del sistema" y se abren bases de datos con versiones de 4D en diferentes lenguajes.

La tokenización es totalmente transparente para los desarrolladores de 4D cuando trabajan en el editor de código de 4D, y, por lo general, no tendrá que preocuparse por ello. Sin embargo, hay dos casos en los que podría ser necesario tomar medidas con respecto a la tokenización: si quiere desactivarla y si quiere utilizar la tokenización en sus fórmulas.

Desactivación de la tokenización

Cuando su proyecto se almacena en un sistema de control de versiones (VCS) como GitHub o GitLab, puede deshabilitar la tokenización para hacer el código más legible en la plataforma externa. Para hacer esto, puede deseleccionar la opción Incluir los tokens en los archivos fuente del proyecto para evitar que los tokens se almacenen en sus nuevos proyectos.

Puede configurar sus proyectos existentes para guardar código sin tokens insertando la siguiente llave en el archivo <applicationName>.4DProjectutilizando un editor de texto:

"tokenizedText": false

Este parámetro sólo se tiene en cuenta cuando se guardan los métodos. Los métodos existentes en sus proyectos no se modifican, a menos que los vuelva a guardar.

Uso de tokens en fórmulas

Una fórmula 4D de tipo texto es un texto que se interpreta en tiempo de ejecución, y no a medida que se escribe. De hecho, esto ocurre cuando el código 4D se expresa como texto sin formato, más concretamente cuando el código se exporta y luego se importa mediante los comandos METHOD GET CODE y METHOD SET CODE, se copia y pega o se interpreta a partir de etiquetas HTML 4D. Para beneficiarse de los mecanismos de tokenización en estos contextos, sólo necesita usar una sintaxis explícita que consiste en preceder nombres de objetos en el lenguaje por su token.

Sintaxis tokenizada

Para los elementos tokenizables contenidos en las expresiones, 4D ofrece una sintaxis especial que se puede utilizar para referenciar los tokens directamente: solo debe añadir un sufijo específico después del nombre del elemento para indicar su tipo (comando, campo, etc.), seguido de su referencia. La sintaxis tokenizada se detalla en esta tabla:

ElementoEjemplo (sintaxis estándar)SufijoEjemplo (sintaxis tokenizada)Comentarios
Comando 4DString(a):CxxString:C10(a)xx es el número del comando
Constante 4DPi:Kxx:yyPi:K30:1xx corresponde al identificador del grupo de constantes y yy es su índice (posición) en dicho grupo
Tabla[Employees]:xx[Employees:1]xx corresponde al número de tabla
Campo[Employees]Name:xx[Employees:1]Name:2xx corresponde al número del campo
4D PluginPV PRINT(area):Pxx:yyPV PRINT:P13000:229(area)xx es el identificador del plug-in y yy es el índice del comando

Nota: en los sufijos deben utilizarse letras mayúsculas (C, P); de lo contrario, no se interpretarán correctamente.

Cuando utiliza esta sintaxis, garantiza que sus fórmulas se interpretarán correctamente incluso en el caso de renombrar o cuando la base de datos se ejecuta en un lenguaje diferente.

Esta sintaxis es válida en todas las fórmulas 4D (o expresiones 4D), independientemente del contexto en el que se utilicen:

¿Dónde se pueden encontrar los números de los elementos?

La sintaxis de token requiere la adición de los números de referencia de diferentes elementos. La ubicación de estas referencias depende del tipo de elemento.

  • Comandos 4D: los números de comando se pueden encontrar en la documentación (sección "Propiedades") así como en la página de Comandos del Explorador.
  • Tablas y campos: los números de tablas y de campos se pueden obtener utilizando los comandos Table y Field. También se muestran en la paleta Inspector del editor Estructura.