Variable tipo Variant

En WinDev las variables es necesario definir de qué tipo son y el tipo de dato que reciben sigue ese formato

lcCadena is string
….

Pero la variable tipo Variant admite cualquier tipo de dato. Por ejemplo una variable Variant con sub-elementos:

Person is Variant
Person.LastName = «MOORE»
Person.FirstName = «Vince»
Person.Edad = 32
Person.FNacimiento = StringToDate(«12-01-1965», «DD-MM-YYYY»)

ó con un Array de sub-elementos

Personas is Variant
Personas[1].LastName = «MOORE»
Personas[1].FirstName = «Vince»
Personas[1].Edad = 32
Personas[1].FNacimiento = StringToDate(«12-01-1965», «DD-MM-YYYY»)
Personas[2].LastName = «MOORE2»
Personas[2].FirstName = «Vince2»
Personas[2].Edad = 33
Personas[2].FNacimiento = StringToDate(«13-01-1965», «DD-MM-YYYY»)

Luego, para recorrer el arrah, hacemos:

FOR EACH vPersona OF Personas
Info(StringBuild([
Nombre: %1
Apellidos: %2
Edad: %3
F.Nacimiento: %4
], vPersona.LastName, vPersona.FirstName, vPersona.Edad, DateToString(vPersona.FNacimiento,»DD-MM-YYYY»)))
END

Más info en https://doc.pcsoft.fr/en-US/?1514019&name=Variant_type. Este tipo de datos es «necesario» cuando trabajas con ActiveX y con automatización.