- Crear un procedimiento
- Salir de un procedimiento
- "Al final del evento que contiene la llamada"
- Devolución de un resultado
- Estampación del valor de retorno
- Atributos de extensión
- Procedimiento zombie (u obsoleto)
Declaración de un procedimiento/función
PROCÉDURE Find(FileName, Key, Value) HReadSeek(FileName, Key, Value) IF HFound() = True THEN RESULT True ELSE RESULT False END
Sintaxis
Declarar un procedimiento con parámetros Ocultar los detalles
PROCEDURE <Procedure name>(<Parameters>) [<Atributos de extensión>] [: <Type of return>] <Código de procedimiento>
<PROCEDURE>: Declaración de inicio del procedimiento.Observación: Para que sus programas sean más legibles, la palabra clave PROCEDURE puede ser reemplazada por la palabra clave FUNCTION. <Procedure name>: Nombre del procedimiento a declarar. <Parameters>: Parámetros pasados al procedimiento. Cada parámetro está separado por una coma. Para obtener más información, consulte Parámetros de un procedimiento.
Versiones 19 y posterioresSi su procedimiento o función es utilizar un elemento de proyecto (ventana, página, reporte,...), tiene la posibilidad de obtener la lista de elementos solicitados en la finalización.. Para ello, añada un atributo de extensión a la declaración de los parámetros de función o de procedimiento. Nueva funcionalidad versión 19Si su procedimiento o función es utilizar un elemento de proyecto (ventana, página, reporte,...), tiene la posibilidad de obtener la lista de elementos solicitados en la finalización.. Para ello, añada un atributo de extensión a la declaración de los parámetros de función o de procedimiento. Si su procedimiento o función es utilizar un elemento de proyecto (ventana, página, reporte,...), tiene la posibilidad de obtener la lista de elementos solicitados en la finalización.. Para ello, añada un atributo de extensión a la declaración de los parámetros de función o de procedimiento. <Atributos de extensión>: Versiones 23 y posterioresAtributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Nueva funcionalidad versión 23Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones.
<Type of return>: Versiones 18 y posterioresTipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Nueva funcionalidad versión 18Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera..
<Código de procedimiento>: WLanguage código de procedimiento a declarar.
Declarar un procedimiento sin parámetros Ocultar los detalles
PROCEDURE <Procedure name>() [<Atributos de extensión>] [: <Type of return>] <Código de procedimiento>
<PROCEDURE>: Declaración de inicio del procedimiento.Observación: Para que sus programas sean más legibles, la palabra clave PROCEDURE puede ser reemplazada por la palabra clave FUNCTION. <Procedure name>: Nombre del procedimiento a declarar. <Atributos de extensión>: Versiones 23 y posterioresAtributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Nueva funcionalidad versión 23Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones.
<Type of return>: Versiones 18 y posterioresTipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Nueva funcionalidad versión 18Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera..
<Código de procedimiento>: Código de procedimiento de WLanguage.
Declarar un procedimiento con parámetros variables Ocultar los detalles
PROCEDURE <Procedure name>(<Parameters>, ]*) [<Atributos de extensión>] [: <Type of return>] <Código de procedimiento>
<PROCEDURE>: Declaración de inicio del procedimiento. Observación: Para que sus programas sean más legibles, la palabra clave PROCEDURE puede ser reemplazada por la palabra clave FUNCTION. <Procedure name>: Nombre del procedimiento a declarar. <Parameters>: Parámetros pasados al procedimiento. Cada parámetro está separado por una coma. Si cambia el número de parámetros que se pueden pasar al procedimiento, utilice el símbolo "*" ".. Por ejemplo:- Procedimientos que pueden recibir entre 0 y 255 parámetros: Procedimiento MyProc(*).
- Procedimientos que pueden recibir entre 1 y 255 parámetros: Procedimiento MyProc(Param1, *).
Para obtener más información, consulte : <Atributos de extensión>: Versiones 23 y posterioresAtributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Nueva funcionalidad versión 23Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones. Atributos de extensión utilizados para definir las opciones de gestión del editor de código. Para más detalles sobre los atributos de la extensión disponible, ver observaciones.
<Type of return>: Versiones 18 y posterioresTipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Nueva funcionalidad versión 18Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera.. Tipo de valor devuelto por el procedimiento. Este tipo puede corresponder a un tipo simple (entero, real, cadena,...) o a un tipo estructurado (estructura, objeto,...).. Esta información se utiliza para asegurarse de que el procedimiento tenga siempre el mismo tipo de valor a cambio.. El valor devuelto siempre se convertirá al tipo especificado. Por ejemplo, si el tipo de retorno es "Integer" y si el valor devuelto es una cadena, la cadena se convertirá automáticamente en entera..
<Código de procedimiento>: WLanguage código de procedimiento a declarar. Observaciones Salir de un procedimiento Para forzar la salida de un procedimiento, use la palabra clave RETURN. En el procedimiento, no se ejecutan todos los procesos después de la palabra clave RETURN. Por ejemplo:
PROCÉDURE Calculate(Dividend) IF Dividend = 0 THEN Error("Unable to divide by zero") RETURN ELSE ... END
Observaciones: - Si el procedimiento devuelve un resultado, use la palabra clave RESULTADO.
- RETURN y RESULTADO no pueden ser usados en el mismo proceso.
"Al final del evento que contiene la llamada" Los procedimientos con la opción "Al final del evento que contiene la llamada" activada, y llamada desde un procedimiento de devolución de llamada (procedimiento utilizado por fListFile, Evento, etc.) se ejecutan al final de cada llamada a la devolución de llamada. Ejemplo:
// ----------------- // standard case // ----------------- Click of button // beginning of button click code Proc1 // beginning of Procedure1 code Proc2 // beginning of Procedure2 code
Call to EndEvent procedure // end of Proc2 code // end of Proc1 code // end of button click code Execution of EndEvent procedure
// ------------------- // callback case // ------------------- Click of button Proc1 Proc2 use of fListFile Callback1 procedure // beginning of code of Callback1 Procedure CallbackProc2 // beginning of code of Callback2 Procedure Call to ProcEndEvent // end of ProcedureCallback2 code // end of ProcedureCallback1 code Execution of ProcEndEvent ProcedureCallback1 // beginning of ProcedureCallback1 code ProcedureCallback2 // beginning of ProcedureCallback2 code Call to ProcEndEvent // end of ProcedureCallback2 code // end of ProcedureCallback1 code Execution of ProcEndEvent
Devolución de un resultado Para devolver el resultado del procedimiento al proceso de llamada, utilice RESULTADO. Esta palabra clave se utiliza para devolver: - un valor,
Versiones 19 y posterioresvarios valores. Nueva funcionalidad versión 19varios valores. varios valores.
Por ejemplo:
// Procedure that returns a value PROCÉDURE Find(FileName, Key, Value) HReadSeek(FileName, Key, Value) IF HFound() = True THEN RESULT True ELSE RESULT False END
Versiones 19 y posteriores
// Procedure that returns several values PROCÉDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
Nueva funcionalidad versión 19
// Procedure that returns several values PROCÉDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
// Procedure that returns several values PROCÉDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
Tip: Para los procedimientos que devuelven un resultado, recomendamos que utilice la palabra clave FUNCTION en lugar de PROCEDURE para simplificar la lectura del código. Importante: La palabra clave RETURN no debe ser usada para forzar la salida de un procedimiento que devuelva un resultado. De hecho, la llamada al procedimiento espera un status reporte que no se devolverá si se fuerza la salida del procedimiento. Versiones 18 y posterioresEstampación del valor de retorno Para especificar el tipo de valor de retorno, todo lo que tiene que hacer es especificar este tipo (precedido por ':') al declarar el procedimiento. Por ejemplo:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versiones 19 y posterioresCaso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Nueva funcionalidad versión 19Caso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Caso de valores de retorno múltiples Tiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.Se permiten los siguientes tipos de devolución: | | | Tipos | Verificaciones realizadas durante la compilación | Verificaciones/acciones realizadas en tiempo de ejecución |
---|
karaoke | | Conversiones automáticas a WLanguage | unsigned integer | | Conversiones automáticas a WLanguage | unsigned integer on 8 bytes | | Conversiones automáticas a WLanguage | int | | Conversiones automáticas a WLanguage | Entero de 8 bytes | | Conversiones automáticas a WLanguage | system integer | | Conversiones automáticas a WLanguage | divisa | | Conversiones automáticas a WLanguage | numérico | | Conversiones automáticas a WLanguage | real | | Conversiones automáticas a WLanguage | 4 bytes reales | | Conversiones automáticas a WLanguage | carácter | | Conversiones automáticas a WLanguage | string | | Conversiones automáticas a WLanguage | ANSI string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | UNICODE string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | buffer | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | fecha | | Conversiones automáticas a WLanguage | momento | | Conversiones automáticas a WLanguage | datetime | | Conversiones automáticas a WLanguage | lapso | | Conversiones automáticas a WLanguage | procedimiento | Sólo se permiten los tipos de procedimiento | Sólo se permiten los tipos de procedimiento | tipo de letra | Sólo se permiten los tipos de fuente | Sólo se permiten los tipos de fuente | <enumeración> | | | Combinación> <combinación | | | Clase> <clase | - "Dinámico" no está permitido.
- Las clases deben estar correlacionadas
| Sólo se permiten conversiones | <estructura> | - "Dinámico" no está permitido.
- las estructuras deben ser las mismas.
| Las estructuras deben ser las mismas. | <advanced type> | - "Dinámico" no permitido
- Los tipos avanzados deben ser los mismos.
| Los tipos avanzados deben ser los mismos. | <.NET class> | "Dinámico" no permitido | | tabla | - "Dinámico" no permitido
- Comprobación del tipo de elementos
- Comprobación del número de dimensiones
| - Comprobación del tipo de elementos
- Comprobar el número de dimensiones si se suministran las dimensiones,
- Comprobación de cada dimensión
| associative array | Comprobación del tipo de elementos | Comprobación del tipo de elementos | stack | Comprobación del tipo de elementos | Comprobación del tipo de elementos | queue | Comprobación del tipo de elementos | Comprobación del tipo de elementos | listar | Comprobación del tipo de elementos | Comprobación del tipo de elementos |
Nueva funcionalidad versión 18Estampación del valor de retorno Para especificar el tipo de valor de retorno, todo lo que tiene que hacer es especificar este tipo (precedido por ':') al declarar el procedimiento. Por ejemplo:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versiones 19 y posterioresCaso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Nueva funcionalidad versión 19Caso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Caso de valores de retorno múltiples Tiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.Se permiten los siguientes tipos de devolución: | | | Tipos | Verificaciones realizadas durante la compilación | Verificaciones/acciones realizadas en tiempo de ejecución |
---|
karaoke | | Conversiones automáticas a WLanguage | unsigned integer | | Conversiones automáticas a WLanguage | unsigned integer on 8 bytes | | Conversiones automáticas a WLanguage | int | | Conversiones automáticas a WLanguage | Entero de 8 bytes | | Conversiones automáticas a WLanguage | system integer | | Conversiones automáticas a WLanguage | divisa | | Conversiones automáticas a WLanguage | numérico | | Conversiones automáticas a WLanguage | real | | Conversiones automáticas a WLanguage | 4 bytes reales | | Conversiones automáticas a WLanguage | carácter | | Conversiones automáticas a WLanguage | string | | Conversiones automáticas a WLanguage | ANSI string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | UNICODE string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | buffer | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | fecha | | Conversiones automáticas a WLanguage | momento | | Conversiones automáticas a WLanguage | datetime | | Conversiones automáticas a WLanguage | lapso | | Conversiones automáticas a WLanguage | procedimiento | Sólo se permiten los tipos de procedimiento | Sólo se permiten los tipos de procedimiento | tipo de letra | Sólo se permiten los tipos de fuente | Sólo se permiten los tipos de fuente | <enumeración> | | | Combinación> <combinación | | | Clase> <clase | - "Dinámico" no está permitido.
- Las clases deben estar correlacionadas
| Sólo se permiten conversiones | <estructura> | - "Dinámico" no está permitido.
- las estructuras deben ser las mismas.
| Las estructuras deben ser las mismas. | <advanced type> | - "Dinámico" no permitido
- Los tipos avanzados deben ser los mismos.
| Los tipos avanzados deben ser los mismos. | <.NET class> | "Dinámico" no permitido | | tabla | - "Dinámico" no permitido
- Comprobación del tipo de elementos
- Comprobación del número de dimensiones
| - Comprobación del tipo de elementos
- Comprobar el número de dimensiones si se suministran las dimensiones,
- Comprobación de cada dimensión
| associative array | Comprobación del tipo de elementos | Comprobación del tipo de elementos | stack | Comprobación del tipo de elementos | Comprobación del tipo de elementos | queue | Comprobación del tipo de elementos | Comprobación del tipo de elementos | listar | Comprobación del tipo de elementos | Comprobación del tipo de elementos |
Estampación del valor de retorno Para especificar el tipo de valor de retorno, todo lo que tiene que hacer es especificar este tipo (precedido por ':') al declarar el procedimiento. Por ejemplo:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versiones 19 y posterioresCaso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Nueva funcionalidad versión 19Caso de valores de retorno múltiplesTiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040. Caso de valores de retorno múltiples Tiene la capacidad de asignar un tipo a los valores de retorno. La sintaxis es la siguiente:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type value N>]]])
Observación: No es necesario especificar el tipo para todos los valores de retorno.. Para evitar especificar el tipo de un valor de retorno, todo lo que tiene que hacer es omitir el tipo o usar el carácter '?. Ejemplo:
PROCEDURE Procedure_Name(): (string..string) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.Se permiten los siguientes tipos de devolución: | | | Tipos | Verificaciones realizadas durante la compilación | Verificaciones/acciones realizadas en tiempo de ejecución |
---|
karaoke | | Conversiones automáticas a WLanguage | unsigned integer | | Conversiones automáticas a WLanguage | unsigned integer on 8 bytes | | Conversiones automáticas a WLanguage | int | | Conversiones automáticas a WLanguage | Entero de 8 bytes | | Conversiones automáticas a WLanguage | system integer | | Conversiones automáticas a WLanguage | divisa | | Conversiones automáticas a WLanguage | numérico | | Conversiones automáticas a WLanguage | real | | Conversiones automáticas a WLanguage | 4 bytes reales | | Conversiones automáticas a WLanguage | carácter | | Conversiones automáticas a WLanguage | string | | Conversiones automáticas a WLanguage | ANSI string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | UNICODE string | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | buffer | Sólo se permiten las cadenas sin tamaño | Conversiones automáticas a WLanguage | fecha | | Conversiones automáticas a WLanguage | momento | | Conversiones automáticas a WLanguage | datetime | | Conversiones automáticas a WLanguage | lapso | | Conversiones automáticas a WLanguage | procedimiento | Sólo se permiten los tipos de procedimiento | Sólo se permiten los tipos de procedimiento | tipo de letra | Sólo se permiten los tipos de fuente | Sólo se permiten los tipos de fuente | <enumeración> | | | Combinación> <combinación | | | Clase> <clase | - "Dinámico" no está permitido.
- Las clases deben estar correlacionadas
| Sólo se permiten conversiones | <estructura> | - "Dinámico" no está permitido.
- las estructuras deben ser las mismas.
| Las estructuras deben ser las mismas. | <advanced type> | - "Dinámico" no permitido
- Los tipos avanzados deben ser los mismos.
| Los tipos avanzados deben ser los mismos. | <.NET class> | "Dinámico" no permitido | | tabla | - "Dinámico" no permitido
- Comprobación del tipo de elementos
- Comprobación del número de dimensiones
| - Comprobación del tipo de elementos
- Comprobar el número de dimensiones si se suministran las dimensiones,
- Comprobación de cada dimensión
| associative array | Comprobación del tipo de elementos | Comprobación del tipo de elementos | stack | Comprobación del tipo de elementos | Comprobación del tipo de elementos | queue | Comprobación del tipo de elementos | Comprobación del tipo de elementos | listar | Comprobación del tipo de elementos | Comprobación del tipo de elementos |
Versiones 23 y posterioresAtributos de extensión Los atributos de extensión disponibles son: - atributo de extensión para la gestión de procedimientos zombies:
| | <zombie [ comment = "text"]> | Se utiliza para definir un procedimiento obsoleto (también llamado procedimiento zombie). La palabra clave opcional comment se utiliza para indicar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Para obtener más información, consulte Procedimientos zombies. |
- atributo de extensión para administrar el depurador:
| | Sin paso a paso> <Sin paso a paso> | Se usa para especificar que el procedimiento será ignorado por el depurador al depurar en modo "Paso a paso".. |
Versiones 24 y posterioresAtributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24Atributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Atributos de extensión específicos de los procedimientos locales, globales o internos:
| | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Versiones 24 y posterioresatributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24atributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
atributo de extensión para gestionar temporizadores:
| | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
- atributo de extensión para manejar hilos:
| | <thread> | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <hilo principal>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Hilo principal>>Hilo principal | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <thread>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <contexto ligero de HFSQL>>. | Copia una parte del contexto HFSQL actual de forma inmediata. Solo se almacenan los directorios que contienen los archivos de datos en modo HFSQL Classic y/o las conexiones en modo HFSQL Client/Server.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute. Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. | <Contexto completo de HFSQL>>. | Copia todo el contexto HFSQL actual de forma inmediata. Se recomienda si el hilo debe tener en cuenta las posiciones actuales en los archivos y consultas del contexto llamador.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute.
Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. |
Nueva funcionalidad versión 23Atributos de extensión Los atributos de extensión disponibles son: - atributo de extensión para la gestión de procedimientos zombies:
| | <zombie [ comment = "text"]> | Se utiliza para definir un procedimiento obsoleto (también llamado procedimiento zombie). La palabra clave opcional comment se utiliza para indicar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Para obtener más información, consulte Procedimientos zombies. |
- atributo de extensión para administrar el depurador:
| | Sin paso a paso> <Sin paso a paso> | Se usa para especificar que el procedimiento será ignorado por el depurador al depurar en modo "Paso a paso".. |
Versiones 24 y posterioresAtributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24Atributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Atributos de extensión específicos de los procedimientos locales, globales o internos:
| | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Versiones 24 y posterioresatributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24atributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
atributo de extensión para gestionar temporizadores:
| | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
- atributo de extensión para manejar hilos:
| | <thread> | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <hilo principal>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Hilo principal>>Hilo principal | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <thread>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <contexto ligero de HFSQL>>. | Copia una parte del contexto HFSQL actual de forma inmediata. Solo se almacenan los directorios que contienen los archivos de datos en modo HFSQL Classic y/o las conexiones en modo HFSQL Client/Server.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute. Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. | <Contexto completo de HFSQL>>. | Copia todo el contexto HFSQL actual de forma inmediata. Se recomienda si el hilo debe tener en cuenta las posiciones actuales en los archivos y consultas del contexto llamador.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute.
Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. |
Atributos de extensión Los atributos de extensión disponibles son: - atributo de extensión para la gestión de procedimientos zombies:
| | <zombie [ comment = "text"]> | Se utiliza para definir un procedimiento obsoleto (también llamado procedimiento zombie). La palabra clave opcional comment se utiliza para indicar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Para obtener más información, consulte Procedimientos zombies. |
- atributo de extensión para administrar el depurador:
| | Sin paso a paso> <Sin paso a paso> | Se usa para especificar que el procedimiento será ignorado por el depurador al depurar en modo "Paso a paso".. |
Versiones 24 y posterioresAtributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24Atributos de extensión específicos de los procedimientos locales, globales o internos: | | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Atributos de extensión específicos de los procedimientos locales, globales o internos:
| | <automatic> | Se usa para especificar que este procedimiento se ejecutará automáticamente después del código de inicialización (de la ventana, página o proyecto)..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos.
Atención, este atributo de extensión no se puede aplicar a un procedimiento interno. | <end process> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <end event> | Se utiliza para indicar que este procedimiento se ejecutará cuando termine el proceso que contiene la llamada al procedimiento. Para obtener más información, consulte "Al final del evento que contiene la llamada".
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Versiones 24 y posterioresatributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
Nueva funcionalidad versión 24atributo de extensión para gestionar temporizadores: | | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
atributo de extensión para gestionar temporizadores:
| | <timer [=intervalo en centésimas de segundo]> | Se utiliza para especificar que el procedimiento se ejecutará en un temporizador.. Este atributo de extensión es equivalente a TimerSys. La repetición es automática. El valor opcional intervalo en centésimas de segundo se utiliza para especificar el intervalo de tiempo entre 2 repeticiones.: - Si no se especifica este valor, es necesario especificar el intervalo de tiempo entre 2 repeticiones utilizando <intervalo>..
- Si no se especifica este valor, los valores de <delay> y <interval> se inicializan con el valor del intervalo especificado.
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <repetition [=número de repeticiones]> | Se utiliza para especificar que el procedimiento se llama varias veces en un fila (repeticiones).. El valor opcional número de repeticiones se utiliza para especificar el número de llamadas al procedimiento.- Si no se especifica este valor, la repetición continuará hasta:
- Se llama EndAutomatedProcedure.
- se cierra el elemento al que pertenece el procedimiento (ventana, página, reporte).
- se destruye la instancia a la que pertenece el procedimiento (para más detalles sobre el concepto de instancia, ver la ayuda sobre Instanciación de un objeto).
- el fin de la aplicación (aplicación cerrada por el usuario, o uso de EndProgram).
- Si se especifica este valor, el procedimiento se llamará tantas veces como el número especificado.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Intervalo=duración en centésimas de segundo> | Se utiliza para especificar la duración (intervalo) entre 2 llamadas al procedimiento.. Este atributo de extensión debe utilizarse con <timer> o <repetición>.. El valor opcional intervalo en centésimas de segundo se utiliza para especificar este intervalo de tiempo. Si no se especifica este valor, debe especificarse con <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <call again[=tipo de llamada]> | Permite especificar, en un procedimiento llamado Timer, el modo de funcionamiento de las llamadas siguientes. Este atributo de extensión debe ser usado con <timer>. El valor opcional de este atributo de extensión puede ser:
| | ignore (Valor predeterminado) | El procedimiento se llama inmediatamente. No hay tiempo de espera para llamar al procedimiento. El procedimiento se llama sólo una vez sin repetición. | nuevo | Se activa un nuevo temporizador. El procedimiento se llama en este nuevo temporizador. Caution, el temporizador anterior no se ha detenido. Los temporizadores se acumularán en la memoria. | Reinicio | Se utiliza para reiniciar el temporizador automáticamente al final del procedimiento.. <Intervalo> se utiliza para definir el intervalo de tiempo entre cada llamada al procedimiento. | Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Retardo=duración un centésimo de segundo> | Se utiliza para especificar el tiempo de espera antes del inicio del procedimiento en un temporizador (durante la primera llamada).. Este atributo de extensión debe ser usado con <timer>. El valor opcional retraso en centésimas de segundo se utiliza para especificar este tiempo de reposo.. Si no se especifica este valor, debe especificarse cuando se utilice <timer>..
Este atributo de extensión no es compatible con <thread> y <main thread>.
Además, puedes ver la ayuda sobre Procedimientos automáticos. |
- atributo de extensión para manejar hilos:
| | <thread> | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <hilo principal>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <Hilo principal>>Hilo principal | Se usa para especificar que el procedimiento se ejecutará en un hilo secundario. Para más detalles sobre los hilos, ver Gestión de hilos.
Este atributo de extensión no es compatible con <timer> y <thread>..
Además, puedes ver la ayuda sobre Procedimientos automáticos. | <contexto ligero de HFSQL>>. | Copia una parte del contexto HFSQL actual de forma inmediata. Solo se almacenan los directorios que contienen los archivos de datos en modo HFSQL Classic y/o las conexiones en modo HFSQL Client/Server.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute. Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. | <Contexto completo de HFSQL>>. | Copia todo el contexto HFSQL actual de forma inmediata. Se recomienda si el hilo debe tener en cuenta las posiciones actuales en los archivos y consultas del contexto llamador.
Este atributo de extensión debe ser usado con <thread>. Para más detalles sobre el manejo de los hilos, ver la ayuda sobre ThreadExecute.
Además, puedes ver la ayuda sobre Procedimientos automáticos. Este atributo de extensión no está disponible. |
Versiones 23 y posterioresProcedimiento zombie (u obsoleto) En la mayoría de los casos, un código antiguo contiene procedimientos que se utilizan pero que ya no se ajustan al estándar de calidad actual. En este caso, se crea una nueva versión de procedimiento, con parámetros diferentes. Como todas las llamadas existentes no pueden ser modificadas inmediatamente, tiene la posibilidad de indicar que la versión anterior se convierte en un procedimiento zombie.. En este caso: - Al recompilar el proyecto, se utiliza un aviso para indicar todas las llamadas al procedimiento zombie.
- Cada vez que se utiliza el procedimiento zombie, se muestra un logotipo específico junto a la llamada durante 10 segundos y se genera una advertencia de compilación.
- Los procedimientos zombies están en gris y tachados en el explorador del proyecto..
¿Cómo proceder?Para indicar que un procedimiento es un procedimiento zombie, la declaración de procedimiento debe ir seguida de la extensión de atributo <Zombie>.. La sintaxis es la siguiente:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
En estas sintaxis, la palabra clave opcional comentario se utiliza para especificar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Ejemplo
- Código de procedimiento:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- Los procedimientos de zombie son grisados y tachados en el explorador del proyecto (tan pronto como el elemento es recompilado)..
- Al escribir la llamada a la función, se mostrará un icono específico durante 10 segundos. : y se mostrará un error de compilación que contiene el comentario:
Nueva funcionalidad versión 23Procedimiento zombie (u obsoleto) En la mayoría de los casos, un código antiguo contiene procedimientos que se utilizan pero que ya no se ajustan al estándar de calidad actual. En este caso, se crea una nueva versión de procedimiento, con parámetros diferentes. Como todas las llamadas existentes no pueden ser modificadas inmediatamente, tiene la posibilidad de indicar que la versión anterior se convierte en un procedimiento zombie.. En este caso: - Al recompilar el proyecto, se utiliza un aviso para indicar todas las llamadas al procedimiento zombie.
- Cada vez que se utiliza el procedimiento zombie, se muestra un logotipo específico junto a la llamada durante 10 segundos y se genera una advertencia de compilación.
- Los procedimientos zombies están en gris y tachados en el explorador del proyecto..
¿Cómo proceder?Para indicar que un procedimiento es un procedimiento zombie, la declaración de procedimiento debe ir seguida de la extensión de atributo <Zombie>.. La sintaxis es la siguiente:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
En estas sintaxis, la palabra clave opcional comentario se utiliza para especificar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Ejemplo
- Código de procedimiento:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- Los procedimientos de zombie son grisados y tachados en el explorador del proyecto (tan pronto como el elemento es recompilado)..
- Al escribir la llamada a la función, se mostrará un icono específico durante 10 segundos. : y se mostrará un error de compilación que contiene el comentario:
Procedimiento zombie (u obsoleto) En la mayoría de los casos, un código antiguo contiene procedimientos que se utilizan pero que ya no se ajustan al estándar de calidad actual. En este caso, se crea una nueva versión de procedimiento, con parámetros diferentes. Como todas las llamadas existentes no pueden ser modificadas inmediatamente, tiene la posibilidad de indicar que la versión anterior se convierte en un procedimiento zombie.. En este caso: - Al recompilar el proyecto, se utiliza un aviso para indicar todas las llamadas al procedimiento zombie.
- Cada vez que se utiliza el procedimiento zombie, se muestra un logotipo específico junto a la llamada durante 10 segundos y se genera una advertencia de compilación.
- Los procedimientos zombies están en gris y tachados en el explorador del proyecto..
¿Cómo proceder?Para indicar que un procedimiento es un procedimiento zombie, la declaración de procedimiento debe ir seguida de la extensión de atributo <Zombie>.. La sintaxis es la siguiente:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
En estas sintaxis, la palabra clave opcional comentario se utiliza para especificar el texto que se mostrará en el error de compilación asociado con el procedimiento obsoleto.. Ejemplo
- Código de procedimiento:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- Los procedimientos de zombie son grisados y tachados en el explorador del proyecto (tan pronto como el elemento es recompilado)..
- Al escribir la llamada a la función, se mostrará un icono específico durante 10 segundos. : y se mostrará un error de compilación que contiene el comentario:
Esta página también está disponible para…
|
|
|