|
|
|
|
|
- Variant type and NULL values
- Type of a variant
- Class property on variants
- Named subelements
- Indexed subelements
- Nesting named and indexed subelements
Variant (Variable type) In french: Variant
The Variant type is used to: - store any simple value: boolean, numeric (Currency, Real, Integer, etc.), characters and character string, date (Date, Time, DateTime and Duration), etc.
- store named or indexed subelements.
- store any complex value: structures, classes, advanced types, arrays, associative arrays, queues, stacks and lists.
- handle the NULL value in WLanguage.
- store interactions with ActiveX objects and Automation programming.
nValue is Variant = 10
nValue = EDT_Edit1
nValue = Customer.Name
Syntax
Declaring and assigning a Variant type Hide the details
<Variable name> is Variant = <Value> OR
<Variable name> is Variant <Variable name> = <Value>
<Variable name>: Name of the variable to declare. <Value>: Value to be assigned to the variable. One of the following values can be assigned to a Variant variable:- any literal value,
- the content of a variable,
- the content of a simple control,
- the content of an item.
Remarks Variant type and NULL values To specify that a Variant variable contains no value, use the NULL constant. Remarks: - for a Variant type, NULL means "Not assigned".
- for a Numeric type, NULL means "equal to 0".
nVal is int
IF vVal = Null THEN ...
nVal = 5
IF vVal = Null THEN ...
vVal is Variant
IF vVal = Null THEN ...
vVal = 0
IF vVal = Null THEN ...
vVal = 5
IF vVal = Null THEN ...
vVal is Variant
vVal = Null
IF vVal = 0 THEN ...
The type of a variant is returned by the Type property. The Type property gets the type of value stored in the variable. Remarks: - VariantConvert is used to convert the type of value stored in a Variant variable.
- TypeVar is used to determine the type of variable (Variant type for a Variant variable).
vVal is Variant
TypeVar(vVal)
vVal..Type
Class property on variants Class is used to obtain the name of the class used if the variant corresponds to a class. Named subelements You can directly use members without any declaration on a Variant variable. When assigning a value to a member, if the member does not exist, it is automatically created; if the member already exits, it is modified. Example:
Person is Variant
Person.LastName = "MOORE"
Person.FirstName = "Vince"
When reading a member, if the member does not exist, it is not created. You can check if a member exists using the Exist property. Example:
Person is Variant
IF NOT Personn.Name..Exist THEN
Error("The name was not specified")
END
If the member does not exist, the returned value is Null. Multiple methods can be used to test the Null value: - use the Value property.
Example:
Element is Variant
IF Element.MemberNotFound..Value = Null THEN
...
END
- test the Null value directly. Example:
Element is Variant
IF Element.MemberNotFound = Null THEN
...
END
Named subelements can be manipulated using the following properties: | | Exist | Returns: - True if the element exists,
- False if the element does not exist. The element is not created.
| Name | Element name | Type | Type of element (same values as TypeVar). | Value | Element value. |
Using the Member property on Variant variables allows you to get the array of named elements. This array can be handled by FOR EACH, the Count property, the [ ] operator, ... It is also possible to delete an element. Example:
o is JSON
o.m = 1
o.n = 2
Trace(o)
x is Variant = o
Delete(x..Member, 1)
Trace(x)
Indexed subelements The Variant variable can be directly used as a Variant array. Using the [ ] operator automatically creates the array. Example:
Days is Variant
Days[1] = "Monday"
Days[2] = "Tuesday"
Days[3] = "Wednesday"
Days[4] = "Thursday"
Days[5] = "Friday"
Days[6] = "Saturday"
Days[7] = "Sunday"
The array operations can be directly performed on the Variant variable: FOR EACH, Count, [ ] operator, etc. Nesting named and indexed subelements Since the named and indexed sub-elements are of type Variant, they can be nested recursively. Example:
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"
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|