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.
  • Extractos que pueden devolver un valor
  • Otras sentencias utilizadas para salir de un bucle o de un procedimiento
  • Tipos devueltos
  • Retornar múltiples variables
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
RESULTSCHTRIMEULT se utiliza para salir del proceso (o procedimiento) actual y devolver un status reporte.
Este status reporte puede corresponder a:
  • un valor.
  • Versiones 19 y posteriores
    diversos valores. Ver Retornar múltiples variables para más detalles.
    WEBDEV - Código NavegadorAndroidWidget Android Java Esta funcionalidad no está disponible. WEBDEV - Código Navegador Esta funcionalidad no está disponible.
    Nueva funcionalidad versión 19
    diversos valores. Ver Retornar múltiples variables para más detalles.
    WEBDEV - Código NavegadorAndroidWidget Android Java Esta funcionalidad no está disponible. WEBDEV - Código Navegador Esta funcionalidad no está disponible.
    diversos valores. Ver Retornar múltiples variables para más detalles.
    WEBDEV - Código NavegadorAndroidWidget Android Java Esta funcionalidad no está disponible. WEBDEV - Código Navegador Esta funcionalidad no está disponible.
El RESULTADO se puede usar en:
  • El código de cierre del proyecto,
  • El código de cierre de la ventana o página,
  • Versiones 19 y posteriores
    El código de cierre de reporte,
    Nueva funcionalidad versión 19
    El código de cierre de reporte,
    El código de cierre de reporte,
  • Un procedimiento (test condicional, FOR, FOR EACH, LOOP o WHILE loop, ....).
Versiones 16 y posteriores
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Nueva funcionalidad versión 16
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Versiones 17 y posteriores
iPhone/iPad Esta función está disponible para las aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función está disponible para las aplicaciones iPhone/iPad.
iPhone/iPad Esta función está disponible para las aplicaciones 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.
Ejemplo
// Call to a procedure that returns NOTHING if a problem occurs
// Different process according to the return value
Control_Value is string
Control_Value = MyProcess(Control_Name)
IF Control_Value = "Nothing" THEN
Info("No value was calculated")
ELSE
Info("Value of control: " + Control_Value)
END
// -- MyProcess procedure
PROCÉDURE MyProcess(Control)
IF Control..Type = typInputText THEN
RESULT Control..Value
ELSE
RESULT "Nothing"
END
Sintaxis

Procedimiento Ocultar los detalles

PROCEDURE <Procedure Name> ([<Parameter>])
IF <Condition> THEN
    RESULT <Value(s) to Return>
ELSE
    RESULT <Value(s) to Return>
END
Notas:
  • Las siguientes operaciones se realizan si se cumple <Condición>:
    • Devolver un status reporte al proceso de llamada. El tipo y valor de <Value to return> depende del valor esperado por el proceso que llama al procedimiento.
    • Salga del bloque de estado de cuenta.
    • Salir del proceso (o procedimiento) actual.
  • Versiones 19 y posteriores
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Nueva funcionalidad versión 19
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.

Closing code of window or page Ocultar los detalles

RESULT <Value to Return>
Notas:
  • En este caso, <Value to Return> debe corresponder al valor esperado durante la llamada a la ventana o a la página..
  • Versiones 19 y posteriores
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Nueva funcionalidad versión 19
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.

Code for closing the window, the page or the report Ocultar los detalles

RESULT <Value to Return>
Notas:
  • En este caso, <Value to Return> debe corresponder al valor esperado durante la llamada a la ventana, página o reporte..
  • Versiones 19 y posteriores
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Nueva funcionalidad versión 19
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.
    Tiene la capacidad de devolver varios valores. Ver Retornar múltiples variables para más detalles.

Closing code of project Ocultar los detalles

RESULT <Value to Return>
Nota: En este caso, <Value to Return> debe ser un entero. Este valor puede ser recuperado por cualquier aplicación. Para una aplicación WINDEV, el valor devuelto por otra aplicación puede ser recuperado por ExeRun.
Observaciones

Extractos que pueden devolver un valor

Varias sentencias pueden devolver un valor en un procedimiento:
  • Sentencia IF
    PROCEDURE <Procedure Name> ([<Parameter>])
    IF <Condition> THEN
    RESULT <Value to Return>
    ELSE
    RESULT <Value to Return>
    END
  • Sentencia FOR
    PROCEDURE <Procedure Name> ([<Parameter>])
    FOR <Control variable> = <Initial value> TO <Final value> [STEP <x>]
    IF <Condition> THEN RESULT <Value to Return>
    END
  • PARA CADA estado de cuenta
    PROCEDURE <Procedure Name> ([<Parameter>])
    FOR EACH <File> ON <Key item>
    ...
    IF <Condition> THEN RESULT <Value to Return>
    END
  • Declaración LOOP
    PROCEDURE <Procedure Name> ([<Parameter>])
    LOOP
    ...
    IF <Condition> THEN RESULT <Value to Return>
    ...
    END
  • Declaración WHILE
    PROCEDURE <Procedure Name> ([<Parameter>])
    WHILE <Condition 1>
    ...
    IF <Condition> THEN RESULT <Value to Return>
    ...
    END
Versiones 19 y posteriores
señalar: Estas sentencias también pueden devolver varios valores. Ver Retornar múltiples variables para más detalles.
Nueva funcionalidad versión 19
señalar: Estas sentencias también pueden devolver varios valores. Ver Retornar múltiples variables para más detalles.
señalar: Estas sentencias también pueden devolver varios valores. Ver Retornar múltiples variables para más detalles.

Otras sentencias utilizadas para salir de un bucle o de un procedimiento

Hay varias declaraciones disponibles:
  • RETURN: Salir del bucle y salir del proceso (o procedimiento) actual.
  • BREAK: Salga del bucle y ejecute el resto del proceso (o procedimiento) actual.
Close se utiliza para salir del bucle (o procedimiento) y cerrar la ventana actual.
Atención: RETURN y RESULT no pueden utilizarse en el mismo proceso.

Tipos devueltos

Versiones 15 y posteriores
A partir de la versión 15, se pueden utilizar los siguientes tipos:
  • estructura
  • estructura dinámica
  • clase
  • tipo avanzado
  • array
  • associative array
  • queue
  • stack
  • listar
Nueva funcionalidad versión 15
A partir de la versión 15, se pueden utilizar los siguientes tipos:
  • estructura
  • estructura dinámica
  • clase
  • tipo avanzado
  • array
  • associative array
  • queue
  • stack
  • listar
A partir de la versión 15, se pueden utilizar los siguientes tipos:
  • estructura
  • estructura dinámica
  • clase
  • tipo avanzado
  • array
  • associative array
  • queue
  • stack
  • listar
Versiones 19 y posteriores
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindowsLinuxAndroidWidget Android iPhone/iPadApple WatchWindows MobileJavaCódigo de Usuario (UMC)

Retornar múltiples variables

Un procedimiento, una función, un método de clase o una ventana pueden devolver varios valores.
Se debe utilizar la siguiente sintaxis:
RESULT [<Value 1>, <Value 2>, ... <Value N>]
or
RETURN = [<Value 1>, <Value 2>, ... <Value N>]
Ejemplo:
// Code of the procedure
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
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nota:
  • Para una ventana, Close también puede utilizarse para devolver varios valores.
  • En un procedimiento, todos los RESULTADO o DEVOLVER que se encuentran en este procedimiento deben devolver el mismo número de valores.
  • Las devoluciones múltiples no están permitidas en un procedimiento almacenado.
  • Las propiedades no pueden utilizar valores múltiples.
  • Para un procedimiento, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...) o a tipos complejos (estructuras,...)..
  • Para una ventana o para una reporte, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...).
  • Si el procedimiento, ventana o reporte devuelve varios valores, no es necesario recuperar todos los valores.. Tienes la habilidad de leer uno solo. Por ejemplo:
    • Lectura de todos los valores:
      ( x, y, z ) = MyProc()
    • Lectura de un valor individual:
      • Lectura del primer valor:
        (x) = MyProc()
        or:
        Versiones 20 y posteriores
        x = MyProc()
        Nueva funcionalidad versión 20
        x = MyProc()
        x = MyProc()
      • Lectura del segundo valor:
        (,y) = MyProc()
Tipos de valores de retorno
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>]]])
señalar: No es necesario especificar el tipo para todos los valores de retorno.. Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Valor de retorno múltiple utilizado en el parámetro
Se puede pasar un valor de retorno múltiple en el parámetro a un procedimiento o función WLanguage.
Ejemplo:
PROCÉDURE f()
RESULT(1, 2)

PROCÉDURE g(x, y)
RESULT x+y

z is int
z = g(f())
// z is set to 3
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 19
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindowsLinuxAndroidWidget Android iPhone/iPadApple WatchWindows MobileJavaCódigo de Usuario (UMC)

Retornar múltiples variables

Un procedimiento, una función, un método de clase o una ventana pueden devolver varios valores.
Se debe utilizar la siguiente sintaxis:
RESULT [<Value 1>, <Value 2>, ... <Value N>]
or
RETURN = [<Value 1>, <Value 2>, ... <Value N>]
Ejemplo:
// Code of the procedure
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
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nota:
  • Para una ventana, Close también puede utilizarse para devolver varios valores.
  • En un procedimiento, todos los RESULTADO o DEVOLVER que se encuentran en este procedimiento deben devolver el mismo número de valores.
  • Las devoluciones múltiples no están permitidas en un procedimiento almacenado.
  • Las propiedades no pueden utilizar valores múltiples.
  • Para un procedimiento, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...) o a tipos complejos (estructuras,...)..
  • Para una ventana o para una reporte, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...).
  • Si el procedimiento, ventana o reporte devuelve varios valores, no es necesario recuperar todos los valores.. Tienes la habilidad de leer uno solo. Por ejemplo:
    • Lectura de todos los valores:
      ( x, y, z ) = MyProc()
    • Lectura de un valor individual:
      • Lectura del primer valor:
        (x) = MyProc()
        or:
        Versiones 20 y posteriores
        x = MyProc()
        Nueva funcionalidad versión 20
        x = MyProc()
        x = MyProc()
      • Lectura del segundo valor:
        (,y) = MyProc()
Tipos de valores de retorno
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>]]])
señalar: No es necesario especificar el tipo para todos los valores de retorno.. Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Valor de retorno múltiple utilizado en el parámetro
Se puede pasar un valor de retorno múltiple en el parámetro a un procedimiento o función WLanguage.
Ejemplo:
PROCÉDURE f()
RESULT(1, 2)

PROCÉDURE g(x, y)
RESULT x+y

z is int
z = g(f())
// z is set to 3
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindowsLinuxAndroidWidget Android iPhone/iPadApple WatchWindows MobileJavaCódigo de Usuario (UMC)

Retornar múltiples variables

Un procedimiento, una función, un método de clase o una ventana pueden devolver varios valores.
Se debe utilizar la siguiente sintaxis:
RESULT [<Value 1>, <Value 2>, ... <Value N>]
or
RETURN = [<Value 1>, <Value 2>, ... <Value N>]
Ejemplo:
// Code of the procedure
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
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nota:
  • Para una ventana, Close también puede utilizarse para devolver varios valores.
  • En un procedimiento, todos los RESULTADO o DEVOLVER que se encuentran en este procedimiento deben devolver el mismo número de valores.
  • Las devoluciones múltiples no están permitidas en un procedimiento almacenado.
  • Las propiedades no pueden utilizar valores múltiples.
  • Para un procedimiento, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...) o a tipos complejos (estructuras,...)..
  • Para una ventana o para una reporte, los valores devueltos pueden corresponder a tipos simples (entero, booleano,...).
  • Si el procedimiento, ventana o reporte devuelve varios valores, no es necesario recuperar todos los valores.. Tienes la habilidad de leer uno solo. Por ejemplo:
    • Lectura de todos los valores:
      ( x, y, z ) = MyProc()
    • Lectura de un valor individual:
      • Lectura del primer valor:
        (x) = MyProc()
        or:
        Versiones 20 y posteriores
        x = MyProc()
        Nueva funcionalidad versión 20
        x = MyProc()
        x = MyProc()
      • Lectura del segundo valor:
        (,y) = MyProc()
Tipos de valores de retorno
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>]]])
señalar: No es necesario especificar el tipo para todos los valores de retorno.. Tiene la capacidad de asignar un tipo a los valores de retorno de la versión 190040.
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Valor de retorno múltiple utilizado en el parámetro
Se puede pasar un valor de retorno múltiple en el parámetro a un procedimiento o función WLanguage.
Ejemplo:
PROCÉDURE f()
RESULT(1, 2)

PROCÉDURE g(x, y)
RESULT x+y

z is int
z = g(f())
// z is set to 3
AndroidWidget Android Java Los valores de retorno múltiples están disponibles a partir de la versión 23.
Versiones 23 y posteriores
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Nueva funcionalidad versión 23
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
AndroidWidget Android Java Los valores de retorno múltiples ya están disponibles.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo Result
//Pegar Retorno
( SAI_Texto1 , SAI_Texto2 ) = retorna_valores()
//---------------------------------
PROCEDURE retorna_valores()
_a is int=1
_b is int=2
RESULT(_a, _b)
//------------------
//Blog com Video e Exemplos
http://windevdesenvolvimento.blogspot.com.br/2016/01/windev21-curso-229-result-pegar-mais-de.html
De matos AMARILDO
20 01 2016
Result
Remember: If you do a RESULT = "" (Equal sign) by a mistake it will not return from your function, but continue.
TOR-BJARNE HENRIKSE
28 02 2014