PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • 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)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
El método para declarar un procedimiento es el mismo, independientemente de si se trata de:
Importante: No debe declarar dos procedimientos con el mismo nombre (especialmente un procedimiento global y un procedimiento local).
Llamar de nuevo : En WLanguage, no hay distinción entre los procedimientos y las funciones. Las sintaxis para declarar y utilizar los procedimientos también se aplican a las funciones.
Versiones 17 y posteriores
iPhone/iPad Esta función está disponible para aplicaciones de iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función está disponible para aplicaciones de iPhone/iPad.
iPhone/iPad Esta función está disponible para aplicaciones de iPhone/iPad.
Versiones 18 y posteriores
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Nueva funcionalidad versión 18
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Versiones 21 y posteriores
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Ejemplo
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 posteriores
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.
Nueva funcionalidad versión 19
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.
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 posteriores
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.
Nueva funcionalidad versión 23
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.
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 posteriores
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..
Nueva funcionalidad versión 18
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..
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 posteriores
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.
Nueva funcionalidad versión 23
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.
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 posteriores
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..
Nueva funcionalidad versión 18
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..
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 posteriores
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.
Nueva funcionalidad versión 23
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.
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 posteriores
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..
Nueva funcionalidad versión 18
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..
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

Crear un procedimiento

Para obtener más información, consulte Procedimientos globales.
Para obtener más información, consulte Procedimientos locales.

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 posteriores
    varios valores.
    Nueva funcionalidad versión 19
    varios 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 posteriores

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 posteriores
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.
Nueva funcionalidad versión 19
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.
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:
TiposVerificaciones realizadas durante la compilaciónVerificaciones/acciones realizadas en tiempo de ejecución
karaokeConversiones automáticas a WLanguage
unsigned integerConversiones automáticas a WLanguage
unsigned integer on 8 bytesConversiones automáticas a WLanguage
intConversiones automáticas a WLanguage
Entero de 8 bytesConversiones automáticas a WLanguage
system integerConversiones automáticas a WLanguage
divisaConversiones automáticas a WLanguage
numéricoConversiones automáticas a WLanguage
realConversiones automáticas a WLanguage
4 bytes realesConversiones automáticas a WLanguage
carácterConversiones automáticas a WLanguage
stringConversiones automáticas a WLanguage
ANSI stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
UNICODE stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
bufferSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
fechaConversiones automáticas a WLanguage
momentoConversiones automáticas a WLanguage
datetimeConversiones automáticas a WLanguage
lapsoConversiones automáticas a WLanguage
procedimientoSólo se permiten los tipos de procedimientoSólo se permiten los tipos de procedimiento
tipo de letraSólo se permiten los tipos de fuenteSó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 arrayComprobación del tipo de elementosComprobación del tipo de elementos
stackComprobación del tipo de elementosComprobación del tipo de elementos
queueComprobación del tipo de elementosComprobación del tipo de elementos
listarComprobación del tipo de elementosComprobación del tipo de elementos
Nueva funcionalidad versión 18

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 posteriores
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.
Nueva funcionalidad versión 19
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.
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:
TiposVerificaciones realizadas durante la compilaciónVerificaciones/acciones realizadas en tiempo de ejecución
karaokeConversiones automáticas a WLanguage
unsigned integerConversiones automáticas a WLanguage
unsigned integer on 8 bytesConversiones automáticas a WLanguage
intConversiones automáticas a WLanguage
Entero de 8 bytesConversiones automáticas a WLanguage
system integerConversiones automáticas a WLanguage
divisaConversiones automáticas a WLanguage
numéricoConversiones automáticas a WLanguage
realConversiones automáticas a WLanguage
4 bytes realesConversiones automáticas a WLanguage
carácterConversiones automáticas a WLanguage
stringConversiones automáticas a WLanguage
ANSI stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
UNICODE stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
bufferSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
fechaConversiones automáticas a WLanguage
momentoConversiones automáticas a WLanguage
datetimeConversiones automáticas a WLanguage
lapsoConversiones automáticas a WLanguage
procedimientoSólo se permiten los tipos de procedimientoSólo se permiten los tipos de procedimiento
tipo de letraSólo se permiten los tipos de fuenteSó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 arrayComprobación del tipo de elementosComprobación del tipo de elementos
stackComprobación del tipo de elementosComprobación del tipo de elementos
queueComprobación del tipo de elementosComprobación del tipo de elementos
listarComprobación del tipo de elementosComprobació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 posteriores
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.
Nueva funcionalidad versión 19
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.
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:
TiposVerificaciones realizadas durante la compilaciónVerificaciones/acciones realizadas en tiempo de ejecución
karaokeConversiones automáticas a WLanguage
unsigned integerConversiones automáticas a WLanguage
unsigned integer on 8 bytesConversiones automáticas a WLanguage
intConversiones automáticas a WLanguage
Entero de 8 bytesConversiones automáticas a WLanguage
system integerConversiones automáticas a WLanguage
divisaConversiones automáticas a WLanguage
numéricoConversiones automáticas a WLanguage
realConversiones automáticas a WLanguage
4 bytes realesConversiones automáticas a WLanguage
carácterConversiones automáticas a WLanguage
stringConversiones automáticas a WLanguage
ANSI stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
UNICODE stringSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
bufferSólo se permiten las cadenas sin tamañoConversiones automáticas a WLanguage
fechaConversiones automáticas a WLanguage
momentoConversiones automáticas a WLanguage
datetimeConversiones automáticas a WLanguage
lapsoConversiones automáticas a WLanguage
procedimientoSólo se permiten los tipos de procedimientoSólo se permiten los tipos de procedimiento
tipo de letraSólo se permiten los tipos de fuenteSó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 arrayComprobación del tipo de elementosComprobación del tipo de elementos
stackComprobación del tipo de elementosComprobación del tipo de elementos
queueComprobación del tipo de elementosComprobación del tipo de elementos
listarComprobación del tipo de elementosComprobación del tipo de elementos
Versiones 23 y posteriores

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 posteriores
    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.
    Nueva funcionalidad versión 24
    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.
    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 posteriores
    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.
    nuevoSe 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 24
    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.
    nuevoSe 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.
    nuevoSe 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.
  • Versiones 24 y posteriores
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    Nueva funcionalidad versión 24
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
Nueva funcionalidad versión 23

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 posteriores
    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.
    Nueva funcionalidad versión 24
    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.
    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 posteriores
    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.
    nuevoSe 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 24
    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.
    nuevoSe 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.
    nuevoSe 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.
  • Versiones 24 y posteriores
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    Nueva funcionalidad versión 24
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App 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 posteriores
    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.
    Nueva funcionalidad versión 24
    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.
    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 posteriores
    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.
    nuevoSe 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 24
    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.
    nuevoSe 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.
    nuevoSe 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.
  • Versiones 24 y posteriores
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    Nueva funcionalidad versión 24
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
    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 principalSe 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.
    Universal Windows 10 App 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.
    Universal Windows 10 App Este atributo de extensión no está disponible.
Versiones 23 y posteriores

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:
Nueva funcionalidad versión 23

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:

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:
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario