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.
  • Presentación
  • ¿Cómo se declara un Variable?
  • Declarar una variable
  • Declarar un Variable e inicializarlo
  • Declarando varias variables
  • Sintaxis detallada
  • Ejemplos
  • Asociar una sección crítica con un Variable
  • ¿Cómo acceder a las propiedades de un Variable?
  • sintáctico
  • Ejemplo
  • Regla para el alcance de Variable
  • dictaminar
  • Exception
  • Caso especial: Reports & Queries
  • Conflicto de nombres: El uso ambiguo de un tipo
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
Presentación
Un Variable se define por su nombre y por su tipo.
El tipo Variable define los valores que puede tomar el Variable, su huella de memoria y las operaciones disponibles.
Recordatorio: Cada tipo se identifica con una palabra clave de WLanguage. Estas palabras clave son palabras reservadas.
Esta página de ayuda presenta:
Versiones 18 y posteriores
Para simplificar la declaración de variables, también tiene la posibilidad de utilizar la función tipo inferencia.
Nueva funcionalidad versión 18
Para simplificar la declaración de variables, también tiene la posibilidad de utilizar la función tipo inferencia.
Para simplificar la declaración de variables, también tiene la posibilidad de utilizar la función tipo inferencia.
¿Cómo se declara un Variable?

Declarar una variable

<Name of variable> is <Type>

Declarar un Variable e inicializarlo

<Name of variable> is <Type> = <Initial value>

Declarando varias variables

<Name of variable 1>, <Name of variable 2> are <Type>

Sintaxis detallada

<Nombre de Variable>:Nombre de la variable a declarar.
<Tipo>:Tipo de Variable o tipo común a los Variable s declarados (ver Tipos de variables disponibles).
<Valor inicial: Valor inicial de la Variable (opcional). Este valor inicial depende del tipo de Variable .
Observaciones:
  • Las palabras clave a y an son opcionales: proporcionan una mejor legibilidad.
  • Cuando se declaran e inicializan varios Variable s del mismo tipo en la misma línea, solo se inicializa el último Variable.
    Versiones 19 y posteriores
    Para declarar e inicializar varias variables al mismo tiempo, utilice la inicialización múltiple.
    Nueva funcionalidad versión 19
    Para declarar e inicializar varias variables al mismo tiempo, utilice la inicialización múltiple.
    Para declarar e inicializar varias variables al mismo tiempo, utilice la inicialización múltiple.
  • No se pueden utilizar varias variables con el mismo nombre en la misma Process (independientemente del tipo de estas variables).
  • Versiones 15 y posteriores
    El atributo "útil" puede utilizarse al declarar un Variable para especificar que se utiliza en el proyecto. Esta notación evita mostrar la advertencia que indica que un Variable local está sin usar. En este caso, se debe utilizar la siguiente sintaxis:
    <Name of variable> is <Type>, useful[ = "reason"]

    <Name of variable> is <Type> <useful [ = "reason"]>
    "Razón" es una nota para el desarrollador.
    Ejemplo:
    n1 is int, useful = "Variable required by the Webservice"

    n2 is int <useful = "Variable required by the Webservice">
    Nueva funcionalidad versión 15
    El atributo "útil" puede utilizarse al declarar un Variable para especificar que se utiliza en el proyecto. Esta notación evita mostrar la advertencia que indica que un Variable local está sin usar. En este caso, se debe utilizar la siguiente sintaxis:
    <Name of variable> is <Type>, useful[ = "reason"]

    <Name of variable> is <Type> <useful [ = "reason"]>
    "Razón" es una nota para el desarrollador.
    Ejemplo:
    n1 is int, useful = "Variable required by the Webservice"

    n2 is int <useful = "Variable required by the Webservice">
    El atributo "útil" puede utilizarse al declarar un Variable para especificar que se utiliza en el proyecto. Esta notación evita mostrar la advertencia que indica que un Variable local está sin usar. En este caso, se debe utilizar la siguiente sintaxis:
    <Name of variable> is <Type>, useful[ = "reason"]

    <Name of variable> is <Type> <useful [ = "reason"]>
    "Razón" es una nota para el desarrollador.
    Ejemplo:
    n1 is int, useful = "Variable required by the Webservice"

    n2 is int <useful = "Variable required by the Webservice">

Ejemplos

  • Declarar variables simples:
    CustomerName is string
    Counter is int
    Price is real
    i,j,k are int

    Versiones 18 y posteriores
    La tipo inferencia le permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
    Nueva funcionalidad versión 18
    La tipo inferencia le permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
    La tipo inferencia le permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
  • Declarando un Border Variable:
    MyBorder is Border
Versiones 19 y posteriores
Declarar varias variables e inializarlas
<Name of variable 1>, <Name of variable 2>, ..., <Name of variable N> are <Type>
= (<Initial value 1>, <Initial value 2>, ..., <Initial value M>)
Detalles de la sintaxis
<Nombre de Variable>:Nombre de la variable a declarar.
N representa el número de variables declaradas.
<Tipo>:Tipo común a las variables declaradas (ver Tipos de variables disponibles).
<Valor inicial: Valor inicial de cada Variable .
M representa el número de valores a asignar.
Observaciones:
  • Las asignaciones se realizan de izquierda a derecha.
  • Si el número de variables es menor que el número de valores (N menos que M), se producirá un error de compilación.
  • Si el número de variables es mayor que el número de valores (N mayor o igual a M), sólo se asignarán las primeras variables.
  • También tienes la capacidad de asignar varias variables con diferentes valores en un solo código Line. Ver Asignación múltiple para más detalles.
Ejemplos:
x, y, z are int = (1, 10, 4)
// x is set to 1, y to 10 and z to 4

s, t, p are strings = ("A", "B001")
// s is set to "A", t to "B001" and p to ""
Nueva funcionalidad versión 19
Declarar varias variables e inializarlas
<Name of variable 1>, <Name of variable 2>, ..., <Name of variable N> are <Type>
= (<Initial value 1>, <Initial value 2>, ..., <Initial value M>)
Detalles de la sintaxis
<Nombre de Variable>:Nombre de la variable a declarar.
N representa el número de variables declaradas.
<Tipo>:Tipo común a las variables declaradas (ver Tipos de variables disponibles).
<Valor inicial: Valor inicial de cada Variable .
M representa el número de valores a asignar.
Observaciones:
  • Las asignaciones se realizan de izquierda a derecha.
  • Si el número de variables es menor que el número de valores (N menos que M), se producirá un error de compilación.
  • Si el número de variables es mayor que el número de valores (N mayor o igual a M), sólo se asignarán las primeras variables.
  • También tienes la capacidad de asignar varias variables con diferentes valores en un solo código Line. Ver Asignación múltiple para más detalles.
Ejemplos:
x, y, z are int = (1, 10, 4)
// x is set to 1, y to 10 and z to 4

s, t, p are strings = ("A", "B001")
// s is set to "A", t to "B001" and p to ""
Declarar varias variables e inializarlas
<Name of variable 1>, <Name of variable 2>, ..., <Name of variable N> are <Type>
= (<Initial value 1>, <Initial value 2>, ..., <Initial value M>)
Detalles de la sintaxis
<Nombre de Variable>:Nombre de la variable a declarar.
N representa el número de variables declaradas.
<Tipo>:Tipo común a las variables declaradas (ver Tipos de variables disponibles).
<Valor inicial: Valor inicial de cada Variable .
M representa el número de valores a asignar.
Observaciones:
  • Las asignaciones se realizan de izquierda a derecha.
  • Si el número de variables es menor que el número de valores (N menos que M), se producirá un error de compilación.
  • Si el número de variables es mayor que el número de valores (N mayor o igual a M), sólo se asignarán las primeras variables.
  • También tienes la capacidad de asignar varias variables con diferentes valores en un solo código Line. Ver Asignación múltiple para más detalles.
Ejemplos:
x, y, z are int = (1, 10, 4)
// x is set to 1, y to 10 and z to 4

s, t, p are strings = ("A", "B001")
// s is set to "A", t to "B001" and p to ""

Asociar una sección crítica con un Variable

Al declarar una variable, se puede asociar a una sección crítica utilizando el atributo critical section.
La sintaxis es la siguiente:
VariableName is VariableType <critical section>

or

VariableName is VariableType, critical section
Las secciones de código que manipulan estas variables deben estar entre las funciones CriticalSectionStart y CriticalSectionEnd.
Caso especial: Una sección crítica se asocia automáticamente a las variables en las que se realizan operaciones simples, tales como:
  • asignar un valor.
  • recuperar un valor.
  • incrementar, decrementar (+, -, ++, --, +=, -= operadores +, -, ++, --, += -=).
Ejemplo:
// Global declarations of WIN_STAT window
gcySum is currency, critical section
gcyMax is currency, critical section
...
// Code run by several threads
cyOrderAmount is currency
...
// atomic operation, the critical section is automatically managed by WLanguage
gcySum += cyAmountOrder

// multiple operation, it is necessary to implement the critical section explicitly
CriticalSectionStart(gcyMax)
IF cyAmountOrder > gcyMax THEN
gcyMax = cyAmountOrder
END
CriticalSectionEnd(gcyMax)
// Global declarations of WIN_STAT window
gcySum is currency, critical section
gcyMax is currency, critical section
...
// Code run by several threads
cyOrderAmount is currency
...
// atomic operation, the critical section is automatically managed by WLanguage
gcySum += cyAmountOrder

// multiple operation, it is necessary to implement the critical section explicitly
USING CriticalSection(gcyMax) IN
IF cyAmountOrder > gcyMax THEN
gcyMax = cyAmountOrder
END
END
Notes:
  • El atributo critical section está permitido en:
    • las variables globales del proyecto, conjunto de procedimientos, ventana, página y reporte.
    • las variables locales.
    • los miembros de clases.
    • los arrays: en este caso, el atributo está asociado al array y no a los elementos del array.
  • Las colas y las pilas están protegidas de forma predeterminada: el atributo critical section no es necesario.
AndroidWidget Android No disponible en Android ni en Android Widget.
¿Cómo acceder a las propiedades de un Variable?

sintáctico

Las siguientes sintaxis pueden ser usadas si el tipo de Variable incluye propiedades:
  • Asignando un Property del Variable:
    <Name of variable>..<Property> = <Value>
  • Leyendo un Property del Variable:
    <Name of variable>..<Property>

Ejemplo

Uso de propiedades en un tipo de Border:
// Define the border characteristics
MyBorder is Border
MyBorder..Color = LightRed
MyBorder..Thickness = 5
Regla para el alcance de Variable

dictaminar

La regla para el alcance de Variable es la siguiente:
  • Si una variable "global" al proyecto y una variable "global" a una ventana tienen el mismo nombre:
    • el Variable "global" a la ventana se utilizará en todos los eventos o procesos de la ventana y los controles de la ventana, así como en sus procedimientos "locales".
    • la variable "global" al proyecto se utilizará en los demás procesos.
  • Si una variable "global" al proyecto y una variable "local" a un proceso tienen el mismo nombre:
    • el "local" Variable sólo se usará en el Process donde se declaró este Variable.
    • la variable "global" al proyecto se utilizará en los demás procesos.
  • Si una variable "global" a una ventana y una variable "local" a un proceso de esta ventana tienen el mismo nombre:
    • el "local" Variable sólo se usará en el Process donde se declaró este Variable.
    • el Variable "global" a la ventana se utilizará en todos los demás eventos o procesos de la ventana y sus controles (así como en sus procedimientos "locales").
    • ninguna de estas dos variables puede ser utilizada en el resto del proyecto.
Observación: Las variables son específicas del ejecutable, del Webservice o de la sesión WEBDEV en la que han sido declaradas.
Versiones 18 y posteriores
Opción de compilación
Se utiliza una opción de compilación para gestionar el alcance de las variables locales.: Alcance de las variables locales limitadas al bloque actual.
Si se selecciona esta opción, las variables locales serán específicas del bloque. No se puede utilizar un Variable local fuera del bloque en el que se declara. El final de la Variable se ejecuta al final del bloque (destructores y liberando la memoria).
Tienes la capacidad de redeclarar un Variable con el mismo nombre en dos sub-bloques distintos pero no puedes redeclarar un Variable con el mismo nombre en un sub-bloque infantil.
Esta opción es seleccionada por Default para los nuevos proyectos.
Para modificar esta opción:
  1. Abra la ventana de descripción del proyecto: en la pestaña "Proyecto", en el grupo "Proyecto", haga clic en "Descripción".
  2. En la pestaña "Compilación", marque o desmarque "Alcance de las variables locales limitadas al bloque actual"..
Nueva funcionalidad versión 18
Opción de compilación
Se utiliza una opción de compilación para gestionar el alcance de las variables locales.: Alcance de las variables locales limitadas al bloque actual.
Si se selecciona esta opción, las variables locales serán específicas del bloque. No se puede utilizar un Variable local fuera del bloque en el que se declara. El final de la Variable se ejecuta al final del bloque (destructores y liberando la memoria).
Tienes la capacidad de redeclarar un Variable con el mismo nombre en dos sub-bloques distintos pero no puedes redeclarar un Variable con el mismo nombre en un sub-bloque infantil.
Esta opción es seleccionada por Default para los nuevos proyectos.
Para modificar esta opción:
  1. Abra la ventana de descripción del proyecto: en la pestaña "Proyecto", en el grupo "Proyecto", haga clic en "Descripción".
  2. En la pestaña "Compilación", marque o desmarque "Alcance de las variables locales limitadas al bloque actual"..
Opción de compilación
Se utiliza una opción de compilación para gestionar el alcance de las variables locales.: Alcance de las variables locales limitadas al bloque actual.
Si se selecciona esta opción, las variables locales serán específicas del bloque. No se puede utilizar un Variable local fuera del bloque en el que se declara. El final de la Variable se ejecuta al final del bloque (destructores y liberando la memoria).
Tienes la capacidad de redeclarar un Variable con el mismo nombre en dos sub-bloques distintos pero no puedes redeclarar un Variable con el mismo nombre en un sub-bloque infantil.
Esta opción es seleccionada por Default para los nuevos proyectos.
Para modificar esta opción:
  1. Abra la ventana de descripción del proyecto: en la pestaña "Proyecto", en el grupo "Proyecto", haga clic en "Descripción".
  2. En la pestaña "Compilación", marque o desmarque "Alcance de las variables locales limitadas al bloque actual"..

Exception

La regla para el alcance de Variable no se aplica al constantes y al Variables de la fuente de datos.

Caso especial: Reports & Queries

  • Las variables globales del proyecto se pueden utilizar en los reportes y consultas creados y/o modificados en "Reports and Queries".
  • Los artículos para los que "Visible por el usuario final en "Reports and Queries"" está marcado en el editor de análisis pueden ser usados en "Reports and Queries". Si esta opción no está marcada, el artículo sólo puede ser utilizado por vía indirecta (la función de autocompletar no está disponible para el usuario, el artículo no está disponible en los magos, las ventanas de description, ...).

Conflicto de nombres: El uso ambiguo de un tipo

Un tipo de WLanguage puede tener el mismo nombre que otro tipo añadido al proyecto por un elemento importado (clases de ensamblaje .NET, tipos estructurados de Webservice, etc.). En este caso, use el prefijo WL para forzar el tipo de WLanguage al declarar un Variable.
Ejemplo:
// Force the use of the WLanguage XMLDocument type
// if the XMLDocument type exists elsewhere
MyVariable is WL.XMLDocument
Versión mínima requerida
  • Versión 14
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario