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.
  • Tipo de variante y NULL
  • Tipo de una variante
  • ...clase Property en las variantes
  • Subelementos nombrados
  • Subelementos subíndices
  • Anidamiento de subelementos nombrados y subescritos
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 tipo de variante se utiliza para:
  • almacenar cualquier sencillo valía: booleana, numérica (Moneda, Real, Entero, ...), caracteres y cadena de caracteres, fecha (Fecha, Hora, DateTime y Duration), ...
  • Versiones 19 y posteriores
    los subelementos de la tienda con nombre o subelementos suscritos.
    Nueva funcionalidad versión 19
    los subelementos de la tienda con nombre o subelementos suscritos.
    los subelementos de la tienda con nombre o subelementos suscritos.
  • Versiones 15 y posteriores
    almacenar cualquier valor de complex: estructuras, clases, tipos avanzados, arrays, arrays asociativo, colas, pilas y listas.
    Nueva funcionalidad versión 15
    almacenar cualquier valor de complex: estructuras, clases, tipos avanzados, arrays, arrays asociativo, colas, pilas y listas.
    almacenar cualquier valor de complex: estructuras, clases, tipos avanzados, arrays, arrays asociativo, colas, pilas y listas.
  • manipular el valor NULL en WLanguage.
  • almacenar las interacciones con los objetos ActiveX y la programación de automatización.
Versiones 17 y posteriores
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Este tipo de variable ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Universal Windows 10 App Este tipo de variable ahora está disponible en modo Windows Store apps.
Nueva funcionalidad versión 18
Universal Windows 10 App Este tipo de variable ahora está disponible en modo Windows Store apps.
Universal Windows 10 App Este tipo de variable ahora está disponible en modo Windows Store apps.
Versiones 21 y posteriores
Universal Windows 10 App Esta tipo de variable ahora está disponible en modo Universal Windows 10 App.
Apple Watch Este tipo de variable ahora está disponible en modo Apple Watch.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta tipo de variable ahora está disponible en modo Universal Windows 10 App.
Apple Watch Este tipo de variable ahora está disponible en modo Apple Watch.
Universal Windows 10 App Esta tipo de variable ahora está disponible en modo Universal Windows 10 App.
Apple Watch Este tipo de variable ahora está disponible en modo Apple Watch.
Versiones 22 y posteriores
Java Este tipo de variable ahora está disponible para aplicaciones Java.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Nueva funcionalidad versión 22
Java Este tipo de variable ahora está disponible para aplicaciones Java.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Java Este tipo de variable ahora está disponible para aplicaciones Java.
Android Este tipo de variable ahora está disponible para aplicaciones Android.
Widget Android Este tipo de variable está ahora disponible en modo Widget Android.
Ejemplo
nValue is Variant = 10
nValue = EDT_Edit1
nValue = Customer.Name
Sintaxis

Declarar y asignar un tipo de variante Ocultar los detalles

<Variable name> is Variant = <Value>

OR


 <Variable Name> is Variant
 <Variable name> = <Value>
<Variable name>:
Nombre de la variable a declarar.
<Value>:
El valor que se asignará a la Variable. Se puede asignar una variante de Variable con:
  • cualquier valor literal,
  • el contenido de un Variable,
  • el contenido de un simple control,
  • el contenido de un artículo.
Observaciones

Tipo de variante y NULL

Para especificar que una variante Variable no contiene ningún valor, use la constante NULL.
Observaciones:
  • para un tipo de variante, NULL significa "No asignado".
  • para un tipo numérico, NULL significa "igual a 0".
nVal is int
IF vVal = Null THEN ... // the test returns True because nVal=0
nVal = 5
IF vVal = Null THEN ... // the test returns False because nVal=5
vVal is Variant
IF vVal = Null THEN ... // returns True because the variant is not assigned
vVal = 0
IF vVal = Null THEN ... // returns False because the variant is assigned  
// with an integer whose value is 0
vVal = 5
IF vVal = Null THEN ... // returns False because the variant is assigned
// with an integer whose value is 5
vVal is Variant
vVal = Null
IF vVal = 0 THEN ... // returns True because a non-assigned variable
// and a value cannot be compared, True is returned by convention

Tipo de una variante

..Type devuelve el tipo de variante. ..Type se utiliza para averiguar el tipo de valor almacenado en el Variable.
Observaciones:
  • VariantConvert se utiliza para convertir el tipo de valor almacenado en una variante Variable.
  • TypeVar se utiliza para averiguar el tipo de Variable (Tipo de variante para una variante Variable).
vVal is Variant
TypeVar(vVal)  // returns the number of the variant type
vVal..Type     // returns the type of the value stored in the variant

...clase Property en las variantes

..La clase en las variables Variante se utiliza para averiguar el nombre de la clase utilizada si la variante corresponde a una clase.
Versiones 19 y posteriores

Subelementos nombrados

Puede utilizar directamente los miembros sin ninguna declaración en una variante de Variable.
Al asignar un miembro, si el miembro no existe, se crea automáticamente; y si ya existe, se modifica.
Ejemplo:
Person is Variant
Person.LastName = "MOORE"
Person.FirstName = "Vince"
Al leer un miembro, si el miembro no existe, no se crea. Tiene la posibilidad de comprobar la presencia de un miembro a través de ..Exist.
Ejemplo:
Person is Variant
IF NOT Personn.Name..Exist THEN
Error("The name was not specified")
END
Si el miembro no existe, el valor devuelto es Nulo. Se pueden utilizar varios métodos para probar explícitamente el valor Nulo:
  • utilizar el valor ..Value .
    Ejemplo:
    Element is Variant
    IF Element.MemberNotFound..Value = Null THEN
    ...
    END
  • Versiones 23 y posteriores
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    Nueva funcionalidad versión 23
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
Los subelementos nombrados pueden ser manejados por las siguientes propiedades:
ExistDevoluciones:
  • True si existe el elemento,
  • False si el elemento no existe. No se crea el elemento.
denominarNombre del elemento
Tipos Tipo de elemento (mismos valores que TypeVar).
ValorValor del elemento.

..Member en las variables Variant se usa para obtener el array de los elementos nombrados. Este array puede ser manejado por CADA UNO, el Property ..Count, el operador [ ], ...
También es posible borrar un elemento. Ejemplo:
o is JSON
o.m = 1
o.n = 2
Trace(o)
 
x is Variant = o
Delete(x..Member, 1)
Trace(x) // The member has been deleted.
Nueva funcionalidad versión 19

Subelementos nombrados

Puede utilizar directamente los miembros sin ninguna declaración en una variante de Variable.
Al asignar un miembro, si el miembro no existe, se crea automáticamente; y si ya existe, se modifica.
Ejemplo:
Person is Variant
Person.LastName = "MOORE"
Person.FirstName = "Vince"
Al leer un miembro, si el miembro no existe, no se crea. Tiene la posibilidad de comprobar la presencia de un miembro a través de ..Exist.
Ejemplo:
Person is Variant
IF NOT Personn.Name..Exist THEN
Error("The name was not specified")
END
Si el miembro no existe, el valor devuelto es Nulo. Se pueden utilizar varios métodos para probar explícitamente el valor Nulo:
  • utilizar el valor ..Value .
    Ejemplo:
    Element is Variant
    IF Element.MemberNotFound..Value = Null THEN
    ...
    END
  • Versiones 23 y posteriores
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    Nueva funcionalidad versión 23
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
Los subelementos nombrados pueden ser manejados por las siguientes propiedades:
ExistDevoluciones:
  • True si existe el elemento,
  • False si el elemento no existe. No se crea el elemento.
denominarNombre del elemento
Tipos Tipo de elemento (mismos valores que TypeVar).
ValorValor del elemento.

..Member en las variables Variant se usa para obtener el array de los elementos nombrados. Este array puede ser manejado por CADA UNO, el Property ..Count, el operador [ ], ...
También es posible borrar un elemento. Ejemplo:
o is JSON
o.m = 1
o.n = 2
Trace(o)
 
x is Variant = o
Delete(x..Member, 1)
Trace(x) // The member has been deleted.

Subelementos nombrados

Puede utilizar directamente los miembros sin ninguna declaración en una variante de Variable.
Al asignar un miembro, si el miembro no existe, se crea automáticamente; y si ya existe, se modifica.
Ejemplo:
Person is Variant
Person.LastName = "MOORE"
Person.FirstName = "Vince"
Al leer un miembro, si el miembro no existe, no se crea. Tiene la posibilidad de comprobar la presencia de un miembro a través de ..Exist.
Ejemplo:
Person is Variant
IF NOT Personn.Name..Exist THEN
Error("The name was not specified")
END
Si el miembro no existe, el valor devuelto es Nulo. Se pueden utilizar varios métodos para probar explícitamente el valor Nulo:
  • utilizar el valor ..Value .
    Ejemplo:
    Element is Variant
    IF Element.MemberNotFound..Value = Null THEN
    ...
    END
  • Versiones 23 y posteriores
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    Nueva funcionalidad versión 23
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
    probar el valor Nulo directamente (disponible a partir de la versión 230042). Ejemplo: probar el valor Nulo directamente. Ejemplo:
    Element is Variant
    IF Element.MemberNotFound = Null THEN
    ...
    END
Los subelementos nombrados pueden ser manejados por las siguientes propiedades:
ExistDevoluciones:
  • True si existe el elemento,
  • False si el elemento no existe. No se crea el elemento.
denominarNombre del elemento
Tipos Tipo de elemento (mismos valores que TypeVar).
ValorValor del elemento.

..Member en las variables Variant se usa para obtener el array de los elementos nombrados. Este array puede ser manejado por CADA UNO, el Property ..Count, el operador [ ], ...
También es posible borrar un elemento. Ejemplo:
o is JSON
o.m = 1
o.n = 2
Trace(o)
 
x is Variant = o
Delete(x..Member, 1)
Trace(x) // The member has been deleted.
Versiones 19 y posteriores

Subelementos subíndices

Puedes usar directamente la variante Variable como un array de variantes. Utilizando el operador [ ] crea automáticamente el array.
Ejemplo:
Days is Variant
Days[1] = "Monday"
Days[2] = "Tuesday"
Days[3] = "Wednesday"
Days[4] = "Thursday"
Days[5] = "Friday"
Days[6] = "Saturday"
Days[7] = "Sunday"
Las operaciones de array pueden realizarse directamente en la variante Variable: PARA CADA UNO, ..Count, operador de [ ], ....
Nueva funcionalidad versión 19

Subelementos subíndices

Puedes usar directamente la variante Variable como un array de variantes. Utilizando el operador [ ] crea automáticamente el array.
Ejemplo:
Days is Variant
Days[1] = "Monday"
Days[2] = "Tuesday"
Days[3] = "Wednesday"
Days[4] = "Thursday"
Days[5] = "Friday"
Days[6] = "Saturday"
Days[7] = "Sunday"
Las operaciones de array pueden realizarse directamente en la variante Variable: PARA CADA UNO, ..Count, operador de [ ], ....

Subelementos subíndices

Puedes usar directamente la variante Variable como un array de variantes. Utilizando el operador [ ] crea automáticamente el array.
Ejemplo:
Days is Variant
Days[1] = "Monday"
Days[2] = "Tuesday"
Days[3] = "Wednesday"
Days[4] = "Thursday"
Days[5] = "Friday"
Days[6] = "Saturday"
Days[7] = "Sunday"
Las operaciones de array pueden realizarse directamente en la variante Variable: PARA CADA UNO, ..Count, operador de [ ], ....
Versiones 19 y posteriores

Anidamiento de subelementos nombrados y subescritos

Los subelementos nombrados y los subelementos subescritos son de tipo Variante, por lo que se pueden anidar recursivamente.
Ejemplo:
Library is Variant
Library.Book[1].Title = "Mrs Dalloway"
Library.Book[1].Author = "Virginia Woolf"
Library.Book[2].Title = "Oliver Twist"
Library.Book[2].Author = "Charles Dickens"
Nueva funcionalidad versión 19

Anidamiento de subelementos nombrados y subescritos

Los subelementos nombrados y los subelementos subescritos son de tipo Variante, por lo que se pueden anidar recursivamente.
Ejemplo:
Library is Variant
Library.Book[1].Title = "Mrs Dalloway"
Library.Book[1].Author = "Virginia Woolf"
Library.Book[2].Title = "Oliver Twist"
Library.Book[2].Author = "Charles Dickens"

Anidamiento de subelementos nombrados y subescritos

Los subelementos nombrados y los subelementos subescritos son de tipo Variante, por lo que se pueden anidar recursivamente.
Ejemplo:
Library is Variant
Library.Book[1].Title = "Mrs Dalloway"
Library.Book[1].Author = "Virginia Woolf"
Library.Book[2].Title = "Oliver Twist"
Library.Book[2].Author = "Charles Dickens"
Versión mínima requerida
  • Versión 14
Esta página también está disponible para…
Comentarios
Comentarios Sobre tipo Variant
http://windevdesenvolvimento.blogspot.com.br/2016/01/a-incrivel-variavel-do-tipo-variant-e.html

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/854-incrivel-variavel-tipo-variant-buffer-uma-das-solucoes/read.awp
De matos AMARILDO
09 01 2016