4D v16.3

Métodos

Inicio

 
4D v16.3
Métodos

Métodos  


 

 

Para que los comandos, operadores y otras partes del lenguaje funcionen, usted los pone en métodos. Hay varias clases de métodos: métodos de objeto, métodos de formulario, métodos de tabla (Triggers), Métodos de proyecto, y métodos de base. Esta sección describe las características comunes de todos los tipos de métodos.

Un método está compuesto de instrucciones; cada instrucción consiste de una línea en el método. Una instrucción realiza una acción, que puede ser simple o compleja. Aunque una instrucción siempre es una línea, la línea puede ser tan larga como sea necesaria (hasta 32 000 caracteres, lo cual es suficiente para la mayoría de las tareas).

Por ejemplo, la siguiente línea es una instrucción que añadirá un nuevo registro a la tabla [Personas]:

 ADD RECORD([Personas])

Un método también contiene condiciones y bucles que controlan el flujo de ejecución. Para mayor información sobre estructuras de programación, consulte la sección Condiciones y bucles.

Nota: el tamaño máximo de un método está limitado a 2 GB de texto o 32 000 líneas de instrucciones. Más allá de estos límites, aparece un mensaje de advertencia, indicando que las líneas extras no aparecerán.

Hay cinco tipos de métodos en 4D:

  • Métodos de objeto: un método de objeto es una propiedad de un objeto. Generalmente es un método corto asociado con un objeto activo de formulario. Usualmente los métodos de objeto “administran” el objeto mientras el formulario se visualiza o imprime. Usted no puede llamar un método de objeto, 4D lo llama automáticamente cuando un evento atañe al objeto al cual el método está adjunto.
  • Métodos de formulario: un método de formulario es una propiedad de un formulario. Puede utilizar un método de formulario para administrar datos y objetos, pero generalmente es más sencillo y más eficiente utilizar un método de objeto para estos propósitos. Usted no puede llamar un método de formulario, 4D lo llama automáticamente cuando un evento atañe al formulario al cual el método está adjunto.

Para mayor información sobre métodos de objeto y métodos de formulario, consulte el Manual de Diseño como también la sección Eventos de formulario.

  • Métodos tabla (Triggers): un trigger es una propiedad de una tabla. Usted no puede llamar un trigger. Los triggers son llamados automáticamente por el motor de la base 4D cada vez que se efectúa una operación en los registros de una tabla (adición, eliminación y modificación). Los triggers son métodos que pueden evitar operaciones “ilegales” en registros de su base. Por ejemplo, en un sistema de facturación, puede evitar que un usuario añada facturas sin especificar el cliente. Los triggers son una herramienta poderosa para controlar las operaciones en una tabla, como también para evitar pérdidas accidentales de datos o vulneración de datos. Puede escribir triggers muy sencillos y volverlos cada vez más sofisticados.

Para información detallada sobre Triggers, consulte la sección Triggers.

  • Métodos de proyecto: a diferencia de los métodos de objeto, métodos de formulario, y triggers, los cuales están asociados con un objeto, formulario, o tabla en particular, los métodos de proyecto están disponibles para ser utilizados en su base de datos. Los métodos de proyecto son reutilizables, y están disponibles para ser utilizados por cualquier otro método. Si necesita repetir una tarea, no tiene que escribir métodos idénticos para cada caso. Puede llamar los métodos de proyecto cuando los necesite, desde otros métodos de proyecto o desde métodos de objeto o formulario. Cuando llama un método de proyecto, se comporta como si usted hubiera escrito el método en el lugar de donde lo llamó. Los métodos de proyecto utilizados por otros métodos son llamados “subrutinas.” Un método de proyecto que devuelve un resultado también puede llamarse función.

Hay otra manera de utilizar métodos de proyecto, asociándolos a comandos de menús. Cuando asocia un método de proyecto con un comando de menú, el método se ejecuta cuando el comando de menú es seleccionado.

Para mayor información sobre métodos de proyecto, consulte la sección Métodos de proyecto.

  • Métodos de base de datos: al igual que los métodos de objeto y de formulario que se llaman cuando ocurre un evento en un formulario, hay métodos asociados con la base de datos que se llaman cuando ocurre un evento de sesión de trabajo. Estos son los métodos de bases de datos. Por ejemplo, cada vez que abre una base de datos, podría inicializar algunas variables que se utilizarán durante toda la sesión de trabajo. Para hacerlo, utilice Método de base On Startup, que se ejecuta automáticamente por 4D cuando abre la base.

Para mayor información sobre métodos de base de datos, consulte la sección Métodos de base de datos.

Todos los métodos son fundamentalmente iguales, comienzan en la primera línea y trabajan a través de cada línea de instrucción hasta que alcanzan la última línea (es decir, se ejecutan secuencialmente). Este es un ejemplo de método de proyecto:

 QUERY([Personas]) ` Muestra el editor de búsquedas
 If(OK=1) ` El usuario hace clic en OK, no cancela
    If(Records in selection([Personas])=0) ` Si no se encuentra ningún registro…
       ADD RECORD([Personas]) ` Permítale al usuario añadir un nuevo registro
    End if
 End if ` Fin

Cada línea en el ejemplo es una instrucción o línea de código. Todo lo que escriba utilizando el lenguaje se llama código. Él se ejecuta; esto significa que 4D efectúa la tarea especificada por el código.

Examinaremos la primera línea en detalle y luego avanzaremos más rápidamente:

 QUERY([Personas]) ` Mostrar el editor de búsquedas

El primer elemento en la línea, QUERY, es un comando. Un comando es una parte del lenguaje de 4D, que realiza una tarea. En este caso, QUERY muestra el editor de búsquedas. Esto es similar a seleccionar Buscar en el menú Registros en el entorno Diseño.

El segundo elemento en la línea, especificado entre paréntesis, es un argumento para el comando QUERY. Un argumento (o Parámetro) es un valor necesario para un comando para poder completar su tarea. En este caso, [Personas] es el nombre de una tabla. Los nombres de tablas siempre se especifican en corchetes ([…]). En nuestro ejemplo, la tabla Personas es un argumento del comando QUERY. Un comando puede aceptar varios parámetros.

El tercer elemento es un comentario al final de cada línea. Un comentario le informa a usted (y a cualquier persona que lea su código) que pasa en el código. Un comentario se señala con el apostrofe inverso (`). En una línea, todo lo que sigue después de una marca de comentario se ignora cuando el código se ejecuta. Un comentario puede ser colocado sólo en una línea, o se puede colocar comentarios a la derecha del código, como en el ejemplo. Utilice generosamente los comentarios en su código; esto hace que sea más fácil para usted y para otros leer y entender el código.

Nota: un comentario puede tener hasta 32 000 caracteres.

La siguiente línea del método verifica si se encontró algún registro:

 If(Records in selection([Personas])=0) ` Si no se encontró ningún registro…

La instrucción If es una instrucción de control de flujo, una instrucción que controla la ejecución paso a paso de su método. La instrucción If realiza una prueba, y si la instrucción es verdadera, se continúa con la ejecución de las líneas siguientes. Records in selection es una función, un comando que devuelve un valor. Acá, Records in selection devuelve el número de registros en la selección actual para la de la tabla pasada como argumento.

Nota: observe que sólo la primera letra del nombre de la función es mayúscula. Esta es la convención de escritura utilizada por la funciones de 4D.

Usted ya sabe lo que es una selección actual, es el grupo de registros con el cual está trabajando en un momento dado. Si el número de registros es igual a 0 (en otras palabras, si no se encuentran registros), entonces se ejecuta la siguiente línea:

 ADD RECORD([Personas]) ` Permite que el usuario añada un nuevo registro

El comando ADD RECORD muestra un formulario de manera que el usuario pueda añadir un nuevo registro. 4D le da formato a su código automáticamente; observe que esta línea está indentada para mostrarle que está dependiendo de la instrucción de flujo de control (If).

End if ` Fin

La instrucción End if concluye la secuencia de instrucciones controlada por If. Donde haya una instrucción de flujo de control, debe tener una instrucción correspondiente indicándole al lenguaje donde detener el control.

Asegúrese de sentirse cómodo con los conceptos de esta sección. Si son todos nuevos, podría revisarlos hasta que aclararlos.

A aprender más sobre:



Ver también 

Arrays
Condiciones y bucles
Constantes
Convenciones
Métodos de base de datos
Operadores
Punteros
Tipos de datos
Triggers
Variables

 
PROPIEDADES 

Producto: 4D
Tema: Presentación del lenguaje

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)