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.
Ayuda / WLanguage / Sintaxis WLanguage / Declaración de variables
  • Estructuras de declaración
  • Tipo de estructura miembros
  • Declarar un miembro de array en una estructura
  • copy homónima de una estructura
  • Serialización de los miembros de una estructura
  • ¿Qué tipos "avanzados" pueden ser miembros?
  • Pasar una estructura como parámetro a una Procedure
  • Agregar el contenido de una estructura a un array de estructuras sin utilizar una variable de la estructura
  • Límites de una estructura
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Una estructura es un tipo de datos personalizado. Una estructura agrupa diferentes tipos de elementos.
Observación: Si está manejando variables personalizadas, le aconsejamos que declare:
  • un tipo de estructura si se utilizan varias variables de este tipo en diferentes procesos del proyecto.
  • un Variable compuesto si se usa un solo Variable de este tipo en su proyecto (para pasar parámetros a un API por ejemplo).
Ejemplo
// Declare a structure
ProductRef is Structure
SCode is int
PdtCode is fixed string on 10
END
// Declare a structure variable
ProductRef is Structure
SCode is int
PdtCode is fixed string on 10
END
Armchair is ProductRef
// Handle a member of a structure variable
ProductRef is Structure
SCode is int
PdtCode is fixed string on 10
END
Armchair is ProductRef
Armchair:SCode = 7
Armchair:PdtCode = "Furniture"
// Declare and initialize the members of a structure
3dPoint is Structure
x is int
y is int
z is int
END

p1 is 3dPoint = [0, 0, 50]
Sintaxis

Declarar una estructura Ocultar los detalles

<Structure name> is structure
   <Structure members>
END
<Structure name>:
Nombre de la estructura a declarar
<Structure members>:
Declaraciones de variables encontradas en la estructura. Estos Variable se denominan miembros del compuesto Variable .
Al declarar los miembros de la estructura, tiene la posibilidad de especificar los parámetros de serialización de estos miembros. Para obtener más información, consulte "Serializar los miembros de una estructura".
<END>:
Fin de la declaración de Variable.

Declarando una estructura Variable Ocultar los detalles

<Variable name> is <Structure name>
<Variable name>:
Nombre de la estructura Variable a declarar.
<Structure name>:
Nombre de una estructura que se ha declarado de antemano.

Manejar a un miembro de una estructura Variable Ocultar los detalles

<Name of structure variable>:<Name of structure member>
<Name of structure variable>:
Nombre de la estructura Variable a utilizar.
<Name of structure member>:
Nombre del miembro de la estructura a utilizar.
Los miembros de una estructura Variable pueden asignarse a través de la asignación múltiple.
Observaciones

Estructuras de declaración

Si una estructura <Nombre de la estructura> se declara:
  • en el código del proyecto, se puede declarar una variable de tipo <Nombre de estructura> en todo el proyecto.
  • en el código de declaración de las variables globales de una ventana, se puede declarar una variable de tipo <Nombre de la ventana> en la ventana, en sus controles y en los procedimientos locales asociados.
  • En el código de apertura de un reporte, se puede declarar una variable de tipo <Nombre de la estructura> en el reporte, en los controles del reporte y en los procedimientos locales asociados.
  • en el código de declaración de una clase, se podrá declarar una variable de tipo <Structure name> en la clase y en sus métodos. Atención: "Es estructura" debe colocarse necesariamente antes que "es clase".
  • en un proceso, se puede declarar una variable de tipo <Nombre de estructura> en dicho proceso.

Tipo de estructura miembros

Los miembros de una estructura pueden tener los siguientes tipos:
Cualquier otro tipo de datos (Variable compuesta, constante, ...) está prohibido.

Declarar un miembro de array en una estructura

  • Declarar un miembro de tipo array simple:
    Las dimensiones de array se fijan cuando se declara array.. Las dimensiones de array pueden ser modificadas por Dimensión.
  • Declarar un miembro array dinámico:
    Las dimensiones de array deben definirse (lo que significa que debe asignarse el array) antes de utilizar el array. Por ejemplo:
    // Declare a structure
    Struct is Structure
    x1 is int
    x2 is dynamic array        // Declare the array
    END

    // Declare a structure variable
    MyStruct is Struct

    // Allocate the array
    MyStruct.x2 = new dynamic array of 4,7 int
    // Use the array
    MyStruct:x2[1,1] = 25

copy homónima de una estructura

El operador => permite realizar una copia homónima de una variable de estructura.
Este copy homónimo también se puede realizar usando el operador =.
Precaución, el copy se realiza miembro a miembro: sólo se copiarán los miembros con el mismo nombre. Los miembros con nombres diferentes o inexistentes serán ignorados.
Ejemplo:
// Declare a structure
StructImportCustomer is Structure
LastName is string
FirstName is string
Company is string
Address is string
ZC is string
City is string
END

StructInternalCustomer is Structure
LastName is string
FirstName is string
Company is string
Address is string
FullAddress is string
ZC is string
City is string
Country is string
END


NewCustomer is StructImportCustomer

CurrentCustomer is StructInternalCustomer

CurrentCustomer = NewCustomer // the FullAddress and Country members are not filled

Serialización de los miembros de una estructura

Por Default, todos los miembros de una estructura son seriados.
Tiene la capacidad de gestionar con precisión la serialización de cada miembro de una estructura.:
  • especificando el miembro que será serializado durante la llamada a serialize.
    Esta operación se puede realizar en todos los tipos de serialización (WXML, JSON, binario)..
  • cambiando el nombre del miembro durante la serialización con serialize.
    Esta operación sólo se puede realizar durante una serialización binaria..
Esta gestión de serialización se realiza utilizando la siguiente sintaxis:
  • Serialización (o no) de un miembro:
    <Member name> is <Type of member> [, Serialize = <True/False>]
  • Serialización y cambio de nombre de miembro:
    <Member name> is <Type of member> [, Serialize = <New name>]
Ejemplo:
Cl is Structure
// Serialized member
SerializedMember is int
// Non-serialized member
NonSerializedMember is string, Serialize = False  
// Member renamed during the serialization
RenamedMember is int, Serialize = "NewMemberName"
END

¿Qué tipos "avanzados" pueden ser miembros?

Una Variable "avanzada" puede ser miembro de otra Variable"avanzada . La tabla a continuación presenta las diferentes combinaciones:
Compuesto VariableEstructuraClaseArray
Compuesto VariableNoNoNoNo
Estructura
Clase
ArrayNo

Pasar una estructura como parámetro a una Procedure

Se puede pasar una variable "estructura" como parámetro a un programa Procedure. Para ello, utilice la siguiente sintaxis:
<Procedure name>(<Name of structure variable>)
Por ejemplo:
ProductRef is Structure
SCode is int
PdtCode is fixed string on 10
END
Armchair is ProductRef

// Call the DisplayProduct procedure
DisplayProduct(Armchair)

Agregar el contenido de una estructura a un array de estructuras sin utilizar una variable de la estructura

Si utiliza un array de estructuras con pocos miembros, puede ser más fácil agregar directamente una estructura utilizando el operador [ ] (corchetes).
Por ejemplo, para la siguiente estructura:
// Structure to store a letter and its ASCII code
STKey is Structure
sKey is string
nAsciiCode is int
END
// Array of structures
arrKeys is array of STKey

En la mayoría de los casos, el contenido se agrega utilizando una variable de un tipo declarado en la estructura:
// Temporary structure for the addition
stAKey is STKey
// Stores the letter A
stAKey.sKey = "A"
stAKey.nAsciiCode = Asc("A")
arrKeys.Add(stAKey)

Con el operador [ ], se obtiene una mejor legibilidad:
// Stores the letter A
arrKeys.Add(["A", Asc("A")])

Límites de una estructura

  • No se permite la herencia de la estructura: una estructura no puede heredar de otra estructura.
  • El acceso a un miembro de una estructura no puede ser restricted: todos los miembros de una estructura son public.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 06/03/2024

Señalar un error o enviar una sugerencia | Ayuda local