Lotus Software logo
IBM Lotus Domino Designer 8.5
  Versions 8.5 and 8.5.1






Variants

Variant is a special data type: variables of type Variant can hold values of any of the following data types that LotusScript recognizes, except for user-defined data types:

You declare a Variant variable the same way you declare a scalar variable -- explicitly or implicitly. If no Deftype statements are applicable, a variable that you declare without using an As dataType clause or a data type suffix is of type Variant. Here, Variant variables appear with the suffix V to distinguish them from object reference variables or variables of some user-defined data type. For example:

Dim myVariant1V As Variant

Dim myVariant2V
Public myVariant3V As Variant
myVariant4V = 123.45

When you declare a Variant variable explicitly, LotusScript initializes it to the special value EMPTY. (Use the function IsEmpty to test a Variant variable for this value.) Declaring a Variant variable is less efficient than assigning it another data type, but is convenient. When you assign a Variant variable a value, LotusScript determines the data type of that value in either of two ways, depending on the available information:

You can determine the data type of a value assigned to a Variant variable with the DataType or TypeName function, as in the following example:

Dim numVarV As Variant

Dim anAmount As Currency
anAmount@ = 20.05
numVarV = anAmount@
Print TypeName(numVarV)
' Output: CURRENCY
numVar = 20.05
Print TypeName(numVar)
' Output: DOUBLE

Under certain circumstances, the data type of a value assigned to a Variant variable can change to accommodate the requirements of a particular operation on it. For instance, in the following example the user enters a sequence of numeric characters, which are then treated as a String value for some operations and as a numeric value for others:

' Declare a Boolean variable and assign it an initial

' value of FALSE (0). The application subsequently tests
' this variable, taking appropriate action depending on the
' variable's value--True (-1) or False (0).
quitFlag = FALSE
Dim ansV As Variant
' Have the user enter some numeric characters.
ansV = InputBox("Enter a number.")
' See how many characters the user entered
' and assign that number to the Integer variable
' UB%. This involves treating the value of ansV
' as a String.
UB% = Len(ansV)
' Test the value of ansV to see if it can be
' interpreted as being of one of the numeric
' data types. If so, declare a dynamic array of Variants,
' then allocate space for as many elements as
' there are characters in ansV, and then assign
' the successive digits in ansV to the elements in
' the array.
If IsNumeric(ansV) = True then
Dim digitArrayV() As Variant
ReDim digitArrayV(1 To UB%)As Variant
For x% = 1 to UB%
digitArrayV(x%) = Mid(ansV, x%, 1)
Next
Else
Print "You entered some nonnumeric characters."
quitFlag = TRUE
End If
' If ansV was able to be interpreted as a numeric,

' print its digits and their sum; then print
' the result of adding that sum to the original
' number that the user entered.
If quitFlag = False Then
Dim theSum As Integer
' theSum% is initialized to 0.
For x% = 1 to UB%
theSum% = theSum% + digitArrayV(x%)
Print digitArrayV(x%) ;
Next
Print ""
Print "Their sum is: " & theSum%
Print "Their sum added to the original number is: " _
& ansV + theSum%
End If
' Output, supposing the user enters 12345:
' 12345
' Their sum is: 15
' Their sum added to the original number is: 12360
Related topics
Data Types, Constants, and Variables
Data type conversion
DataType function
Variant data type




Library | Support | Terms of use |

Last updated: Monday, October 5, 2009