|
- Presentación
- Pasar los parámetros por referencia
- Modo de funcionamiento por defecto
- Pasar un control, una ventana o un reporte
- Pasando los parámetros por valor
- Presentación
- Solución 1: Usando soportes dobles
- Solución 2: Utilizando parámetros "locales" en el procedimiento
- Parámetro correspondiente a un elemento de proyecto
- Caso especial
- Pasando una lista de valores
Los parámetros se pueden pasar a un procedimiento: Pasar los parámetros por referencia Modo de funcionamiento por defecto Por defecto, cuando se llama a un procedimiento, los parámetros son passed por referencia (por variable o por dirección). Si el parámetro se modifica en el procedimiento, el proceso que llama al procedimiento recuperará el parámetro con el valor modificado its. Para pasar un parámetro por variable a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>(<Name of variable passed as parameter>)
Por ejemplo:
Subscript is int = 1 // Before the call to the procedure, Subscript is set to 1 AddOne(Subscript) // After the call to the procedure, Subscript is set to 2
// -- Declare the procedure PROCÉDURE AddOne(Counter) Counter += 1
Pasar un control, una ventana o un reporte Al llamar a un procedimiento, los parámetros pueden ser un control, una ventana o un reporte. Este objeto (control, ventana o reporte) se trata como cualquier objeto "estándar". Para pasar un elemento de los parámetros a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>(<Element name>)
Por ejemplo:
// Call the ControlNotVisible procedure ControlNotVisible(ControlAddress)
// -- Declare the procedure PROCÉDURE ControlNotVisible(ControlAddress) ControlAddress..Visible = False
Observaciones: - La palabra clave MySelf se utiliza para manipular el control actual.
- La palabra clave MiVentana se utiliza para manipular la ventana actual.
- La palabra clave MiInforme se utiliza para manipular el reporte actual.
Pasando los parámetros por valor Presentación Durante la llamada a un procedimiento, los parámetros pueden ser IMEULBpassed por el valor'STRIMEULD. Si el parámetro se modifica en el procedimiento, el proceso que llama al procedimiento recuperará el parámetro con its unmodified value. Se pueden utilizar dos métodos para pasar los parámetros por valor: Solución 1: Usando soportes dobles Para pasar un parámetro por valor a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>((<Name of variable passed as parameter>))
Por ejemplo:
Subscript is int = 1 // Before the call to the procedure, Subscript is set to 1 AddOne((Subscript)) // After the call to the procedure, Subscript is still set to 1
// -- Declare the procedure PROCÉDURE AddOne(Counter) Counter += 1
Solución 2: Utilizando parámetros "locales" en el procedimiento Al declarar un procedimiento, las variables pasadas como parámetro pueden convertirse en locales de este procedimiento. Para ello, el parámetro local debe ser precedido por la palabra clave LOCAL. Por ejemplo:
PROCEDURE MyProc(LOCAL Subscript, LOCAL Counter, Number)
Si este parámetro se modifica en el procedimiento, el proceso que llama al procedimiento recuperará el parámetro con its unmodified value. Observaciones: - La palabra clave LOCAL obliga a la copia del elemento pasada como parámetro en los siguientes casos:
- instancia de clase o instancia de array pasada a un parámetro no mecanografiado.
Ejemplo:
Procedure MyProcedure(LOCAL Parameter)
- instancia de clase pasada a un parámetro tipificado.
Ejemplo:
Procedure MyProcedure(LOCAL Parameter is CClass)
- PCS_SANS_TRADUCTION_US
Versiones 19 y posterioresParámetro correspondiente a un elemento de proyecto Si su procedimiento utiliza elementos de proyecto, hasta la versión 19, el nombre del elemento tenía que ser incluido entre comillas durante la llamada al procedimiento. Por ejemplo:
MyProcedure("WIN_Example")
A partir de la versión 19, se puede pasar el nombre del elemento sin comillas y se puede beneficiar de la finalización sobre el parámetro durante la entrada. caja de Reporte case Todo lo que tienes que hacer es usar el atributo <reporte name> extension. Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(ReportName is string <report name>)
Ejemplo:
// Declare the procedure PROCÉDURE Checkdata(sReportname is string <report name>)
En este ejemplo, durante la llamada al procedimiento, el parámetro sReportName contiene el nombre de reporte. La finalización propondrá todos los informes encontrados en el proyecto. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - InputControl(ReportName)
- InputControl("ReportName")
- InputControl(Nombre de la variable de cadena que contiene el nombre de la reporte)
Case de fuentes de datos Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(FileName is Data Source)
Ejemplo:
// Declare the procedure PROCEDURE CheckData(sFileName is Data Source)
En este ejemplo, durante la llamada al procedimiento, el parámetro sFilewName contiene el nombre de una fuente de datos. La finalización propondrá todas las fuentes de datos (archivos, consultas, variables de fuente de datos) que se encuentran en el proyecto.. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - CheckData(Archivo)
- CheckData(Consulta)
- CheckData("Archivo")
- CheckData("Consulta")
- CheckData(Nombre de la variable de cadena que contiene el nombre del archivo o consulta)
- CheckData(Nombre de la variable fuente de datos)
Observación: Para asociar la fuente de datos con un archivo de datos (o consulta) existente, todo lo que hay que hacer es añadir un atributo de extensión específico. En este caso, la cumplimentación automática le permitirá acceder directamente a las posiciones. Ver Variable de fuente de datos para más detalles. Nueva funcionalidad versión 19Parámetro correspondiente a un elemento de proyecto Si su procedimiento utiliza elementos de proyecto, hasta la versión 19, el nombre del elemento tenía que ser incluido entre comillas durante la llamada al procedimiento. Por ejemplo:
MyProcedure("WIN_Example")
A partir de la versión 19, se puede pasar el nombre del elemento sin comillas y se puede beneficiar de la finalización sobre el parámetro durante la entrada. caja de Reporte case Todo lo que tienes que hacer es usar el atributo <reporte name> extension. Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(ReportName is string <report name>)
Ejemplo:
// Declare the procedure PROCÉDURE Checkdata(sReportname is string <report name>)
En este ejemplo, durante la llamada al procedimiento, el parámetro sReportName contiene el nombre de reporte. La finalización propondrá todos los informes encontrados en el proyecto. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - InputControl(ReportName)
- InputControl("ReportName")
- InputControl(Nombre de la variable de cadena que contiene el nombre de la reporte)
Case de fuentes de datos Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(FileName is Data Source)
Ejemplo:
// Declare the procedure PROCEDURE CheckData(sFileName is Data Source)
En este ejemplo, durante la llamada al procedimiento, el parámetro sFilewName contiene el nombre de una fuente de datos. La finalización propondrá todas las fuentes de datos (archivos, consultas, variables de fuente de datos) que se encuentran en el proyecto.. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - CheckData(Archivo)
- CheckData(Consulta)
- CheckData("Archivo")
- CheckData("Consulta")
- CheckData(Nombre de la variable de cadena que contiene el nombre del archivo o consulta)
- CheckData(Nombre de la variable fuente de datos)
Observación: Para asociar la fuente de datos con un archivo de datos (o consulta) existente, todo lo que hay que hacer es añadir un atributo de extensión específico. En este caso, la cumplimentación automática le permitirá acceder directamente a las posiciones. Ver Variable de fuente de datos para más detalles. Parámetro correspondiente a un elemento de proyecto Si su procedimiento utiliza elementos de proyecto, hasta la versión 19, el nombre del elemento tenía que ser incluido entre comillas durante la llamada al procedimiento. Por ejemplo:
MyProcedure("WIN_Example")
A partir de la versión 19, se puede pasar el nombre del elemento sin comillas y se puede beneficiar de la finalización sobre el parámetro durante la entrada. caja de Reporte case Todo lo que tienes que hacer es usar el atributo <reporte name> extension. Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(ReportName is string <report name>)
Ejemplo:
// Declare the procedure PROCÉDURE Checkdata(sReportname is string <report name>)
En este ejemplo, durante la llamada al procedimiento, el parámetro sReportName contiene el nombre de reporte. La finalización propondrá todos los informes encontrados en el proyecto. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - InputControl(ReportName)
- InputControl("ReportName")
- InputControl(Nombre de la variable de cadena que contiene el nombre de la reporte)
Case de fuentes de datos Se debe utilizar la siguiente sintaxis:
PROCEDURE ProcedureName(FileName is Data Source)
Ejemplo:
// Declare the procedure PROCEDURE CheckData(sFileName is Data Source)
En este ejemplo, durante la llamada al procedimiento, el parámetro sFilewName contiene el nombre de una fuente de datos. La finalización propondrá todas las fuentes de datos (archivos, consultas, variables de fuente de datos) que se encuentran en el proyecto.. Las llamadas al procedimiento pueden corresponder a las siguientes sintaxis: - CheckData(Archivo)
- CheckData(Consulta)
- CheckData("Archivo")
- CheckData("Consulta")
- CheckData(Nombre de la variable de cadena que contiene el nombre del archivo o consulta)
- CheckData(Nombre de la variable fuente de datos)
Observación: Para asociar la fuente de datos con un archivo de datos (o consulta) existente, todo lo que hay que hacer es añadir un atributo de extensión específico. En este caso, la cumplimentación automática le permitirá acceder directamente a las posiciones. Ver Variable de fuente de datos para más detalles. Versiones 18 y posterioresPasando una lista de valores Durante la llamada a un procedimiento, los parámetros pueden ser a lista de valores ("[1,2,3]" por ejemplo). Para pasar una lista de valores en parámetro a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>(<List of values>)
Por ejemplo:
// Call the procedure MyProcedure([1,2,3])
// -- Declare the procedure PROCÉDURE MyProcedure(Values) MyArray is array of int = Values
Observaciones: - Si el parámetro del procedimiento no tiene ningún tipo, la lista de valores se pasa al procedimiento directamente. Como las listas de valores no pueden manejarse directamente, este parámetro sólo puede utilizarse en las características que aceptan las listas de valores:
- a una función WLanguage que autoriza las listas de valores (HFilter, HReadSeek, ....).
- asignación en una variable estructurada (array, clase, estructura,...).
- llamada a un procedimiento de usuario que permite una lista de valores.
- Si el parámetro del procedimiento es un array, se asigna automáticamente un array y se llena con los valores encontrados en la lista de valores..
- Si el parámetro del procedimiento tiene otro tipo, se producirá un error de compilación (o un error de lenguaje WLanguage en tiempo de ejecución si el parámetro real no tiene ningún tipo).
Overriding WLanguage functions: Puede anular las funciones WLanguage que aceptan las listas de valores a través de los parámetros "lista de valores", especialmente: Nueva funcionalidad versión 18Pasando una lista de valores Durante la llamada a un procedimiento, los parámetros pueden ser a lista de valores ("[1,2,3]" por ejemplo). Para pasar una lista de valores en parámetro a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>(<List of values>)
Por ejemplo:
// Call the procedure MyProcedure([1,2,3])
// -- Declare the procedure PROCÉDURE MyProcedure(Values) MyArray is array of int = Values
Observaciones: - Si el parámetro del procedimiento no tiene ningún tipo, la lista de valores se pasa al procedimiento directamente. Como las listas de valores no pueden manejarse directamente, este parámetro sólo puede utilizarse en las características que aceptan las listas de valores:
- a una función WLanguage que autoriza las listas de valores (HFilter, HReadSeek, ....).
- asignación en una variable estructurada (array, clase, estructura,...).
- llamada a un procedimiento de usuario que permite una lista de valores.
- Si el parámetro del procedimiento es un array, se asigna automáticamente un array y se llena con los valores encontrados en la lista de valores..
- Si el parámetro del procedimiento tiene otro tipo, se producirá un error de compilación (o un error de lenguaje WLanguage en tiempo de ejecución si el parámetro real no tiene ningún tipo).
Overriding WLanguage functions: Puede anular las funciones WLanguage que aceptan las listas de valores a través de los parámetros "lista de valores", especialmente: Pasando una lista de valores Durante la llamada a un procedimiento, los parámetros pueden ser a lista de valores ("[1,2,3]" por ejemplo). Para pasar una lista de valores en parámetro a un procedimiento, utilice la siguiente sintaxis:
<Procedure name>(<List of values>)
Por ejemplo:
// Call the procedure MyProcedure([1,2,3])
// -- Declare the procedure PROCÉDURE MyProcedure(Values) MyArray is array of int = Values
Observaciones: - Si el parámetro del procedimiento no tiene ningún tipo, la lista de valores se pasa al procedimiento directamente. Como las listas de valores no pueden manejarse directamente, este parámetro sólo puede utilizarse en las características que aceptan las listas de valores:
- a una función WLanguage que autoriza las listas de valores (HFilter, HReadSeek, ....).
- asignación en una variable estructurada (array, clase, estructura,...).
- llamada a un procedimiento de usuario que permite una lista de valores.
- Si el parámetro del procedimiento es un array, se asigna automáticamente un array y se llena con los valores encontrados en la lista de valores..
- Si el parámetro del procedimiento tiene otro tipo, se producirá un error de compilación (o un error de lenguaje WLanguage en tiempo de ejecución si el parámetro real no tiene ningún tipo).
Overriding WLanguage functions: Puede anular las funciones WLanguage que aceptan las listas de valores a través de los parámetros "lista de valores", especialmente:
Esta página también está disponible para…
|
|
|
| |
| Haga clic en [Agregar] para publicar un comentario |
|
| |
|
| |
| |
| |
| |
| |
| |
| | |
| |