PC SOFT

AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente. Haga clic aquí para ver la versión en inglés.
  • Presentación
  • ¿Cómo se declara un Variable?
  • Declarar una variable
  • Declarando una Variable e iniciándola
  • Declarando varias variables
  • Sintaxis detallada
  • Ejemplos
  • Asociar una sección crítica con una Variable
  • ¿Cómo acceder a las propiedades de un Variable?
  • Sintaxis
  • 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
Una 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

<Variable name> is <Type>

Declarando una Variable e iniciándola

<Variable name> is <Type> = <Initial value>

Declarando varias variables

<Variable name 1>, <Variable name 2> are <Type>

Sintaxis detallada

<Nombre de variable>:Nombre de la variable a declarar.
<Tipo>:Tipo de Variable o tipo común a las Variable declaradas (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 varias Variable s del mismo tipo en la misma línea, sólo se inicializa la última Variable.
    Versiones 19 y posteriores
    Para declarar e inicializar varias variables en la misma Time, use la inicialización múltiple.
    Nueva funcionalidad versión 19
    Para declarar e inicializar varias variables en la misma Time, use la inicialización múltiple.
    Para declarar e inicializar varias variables en la misma Time, use 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:
    <Variable name> is <Type>, useful[ = "Reason"]

    <Variable name> 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:
    <Variable name> is <Type>, useful[ = "Reason"]

    <Variable name> 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:
    <Variable name> is <Type>, useful[ = "Reason"]

    <Variable name> 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 permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
    Nueva funcionalidad versión 18
    La tipo inferencia permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
    La tipo inferencia permite utilizar las siguientes sintaxis:
    let Amount = 1500.69 // real type
    let City = "Montpellier" // string type
  • Declarando una Border Variable:
    MyBorder is Border
Versiones 19 y posteriores
Declarar varias variables e inializarlas
<Variable name 1>, <Variable name 2>, ..., <Variable name 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. Para obtener más información, consulte Asignación múltiple.
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
<Variable name 1>, <Variable name 2>, ..., <Variable name 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. Para obtener más información, consulte Asignación múltiple.
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
<Variable name 1>, <Variable name 2>, ..., <Variable name 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. Para obtener más información, consulte Asignación múltiple.
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 una 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
Notas:
  • 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.
¿Cómo acceder a las propiedades de un Variable?

Sintaxis

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

Ejemplo

Usar las 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 del ámbito de aplicación de la Variable no se aplica a la constantes ni a la 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 campos para los cuales la opción "Visible por el usuario final en "Reports and Queries"" está seleccionada en el editor de análisis se pueden utilizar 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 las ventanas de los asistentes, description, etc.).

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