AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Sintaxis WLanguage / Declaración de variables
  • Declarar enumeraciones
  • Pasar una enumeración como parámetro a un procedimiento
  • Casos especiales
  • Extensibilidad de enumeraciones
  • Crear un alias en una enumeración
  • Valores asociados
  • Propiedades asociadas
  • Funciones WLanguage disponibles
  • Limitaciones
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 enumeración es un conjunto de valores. Solo un valor del conjunto de datos de la enumeración se puede asignar a una variable o parámetro de tipo Enumeration.
Ejemplo
// Declaration code
// Declare an enumeration
RobotType is Enumération
Walk
Stopped
InMaintenance
OutOfOrder
END
// Declare an Enumeration variable
Post1 is RobotType
// Assign the variable
Post1 = Walk
// Post1 = 1 // Displays a compilation error
// Post1 = "Walk" // Displays a compilation error
Sintaxis

Declarar un valor de enumeración Ocultar los detalles

<Enumeration name> is Enumeration
   <Enumeration values>
END
<Enumeration name>:
Nombre del valor de la enumeración a declarar
<Enumeration values>:
Diferentes valores que pueden ser tomados por la enumeración.
<END>:
Fin de la declaración.

Declarar una variable de tipo Enumeration Ocultar los detalles

<Variable name> is <Enumeration name>
<Variable name>:
Nombre de la variable de tipo Enumeration a declarar.
<Enumeration name>:
Nombre de una enumeración declarada anteriormente. El valor predeterminado de la enumeración corresponde al primer valor de la enumeración.
Observaciones

Declarar enumeraciones

Una enumeración debe declararse en:
  • El código de inicialización del proyecto para poder utilizarla en todos los procesos del proyecto (código del proyecto, ventanas, controles, procedimientos, etc.).
  • El código de declaración global de una ventana para poder utilizarla en todos los procesos de la ventana (código de la ventana, controles de la ventana, procedimientos locales, etc.).
  • El código de apertura de un reporte para poder utilizarla en todos los procesos del reporte (código del reporte, controles del reporte, procedimientos locales, etc.).
  • El código de declaración de una clase para poder utilizarla en la clase.
    • Para acceder a esta enumeración desde un método de clase, utilice la siguiente sintaxis:
      "::<Enumeration name>"
    • Para acceder a esta enumeración desde fuera de la clase, utilice la siguiente sintaxis:
      "<Class name>::<Enumeration name>"
  • El código de declaración de un conjunto de procedimientos para poder utilizarla en todos los procedimientos del conjunto.
Observación: Una enumeración siempre es global:
  • a un proyecto,
  • a una ventana,
  • a un reporte,
  • a una clase.

Pasar una enumeración como parámetro a un procedimiento

Una variable de tipo Enumeration puede pasarse como parámetro a un procedimiento. Para ello, utilice la siguiente sintaxis:
<Procedure name>(<Name of enumeration variable>)
Por ejemplo:
// Procedure with an Enumeration parameter
PROCÉDURE OperatingMode(p is RobotType)

// Calls with an Enumeration parameter
OperatingMode(Walk)
OperatingMode(1) // Displays a compilation error
OperatingMode("A") // Displays a compilation error

Casos especiales

  • Sugerencias de código: Las sugerencias de código para un parámetro de tipo Enumeration incluyen los diferentes valores de la enumeración.
  • Orden de los valores: Los operadores <, <=, >, >= están disponibles para enumeraciones y operaciones de ordenación automática (ArraySort, ArraySeek, etc.). El orden de los valores en la enumeración es el orden en que se declaran estos valores.
    Ejemplo:
    // Declaration code
    // Declare an enumeration
    RobotType is Enumération
    Walk
    Stopped
    InMaintenance
    OutOfOrder
    END

    // Declare an Enumeration variable
    Post1 is RobotType
    // Assign the variable
    Post1 = Walk

    ...

    IF Post1>Stopped THEN
    Info("The robot encounters a problem")
    END

Extensibilidad de enumeraciones

Puede incluir uno o varios valores de otras enumeraciones y agregar nuevos valores.
La sintaxis utilizada es la siguiente:
<Enumeration name> is Enumeration
   [Base enumeration]
   <Additional enumeration values>
END
donde:
  • Enumeration name: Nombre de una enumeración declarada anteriormente.
  • Base enumeration: Nombre de la enumeración base a utilizar.
  • Additional enumeration values: Valores adicionales que se tendrán en cuenta en la enumeración.
Ejemplo:
// Declaration code
// Declare an enumeration
RobotType is Enumération
Walk
Stopped
InMaintenance
OutOfOrder
END

AdvancedRobotType is Enumération
[RobotType]
InLoop
END
No se pueden asignar valores de extensión en una enumeración base.

Crear un alias en una enumeración

Puede declarar un alias para garantizar una compatibilidad temporal, por ejemplo.
La sintaxis utilizada es la siguiente:
<Enumeration name> is Enumeration
<Value 1 of enumeration>
<Value 2 of enumeration>
<Value 3 of enumeration> = <Value 1 of enumeration>
END
Ejemplo:
// Declaration code
// Declare an enumeration
RobotType is Enumération
Walk
Stopped
InMaintenance
OutOfOrder
// Declare the temporary aliases
Maintenance = InMaintenance
Breakdown = OutOfOrder
END

Valores asociados

En WLanguage, puede asociar un valor constante simple a cada valor de una enumeración. Este valor se asocia con el valor de la enumeración en la declaración de la enumeración.
// Declare the enumeration with associated values
RobotType is Enumération
Walk = "Running the robot"
Stopped = "Robot stopped"
InMaintenance = "Robot under maintenance"
OutOfOrder = "Robot breakdown"
END
A continuación, es posible leer el valor asociado a una variable de tipo Enumeration utilizando la propiedad Value.
// Access to the associated value
e is RobotType
RobotMessage is string = e..Value
El valor asociado no tiene ningún efecto sobre otras características de la enumeración. Por ejemplo, los valores se ordenan en el mismo orden en que se declararon en la enumeración.

Propiedades asociadas

Las siguientes propiedades están asociadas a las variables de tipo Enumeration:
NameObtiene el nombre de una variable de tipo Enumeration.
ValueObtiene el valor de una variable de tipo Enumeration.

Funciones WLanguage disponibles

Una enumeración puede almacenarse en un campo HFSQL o en otro formato de archivo. Dependiendo de sus necesidades, puede almacenar el nombre o el valor de la enumeración (propiedades Name o Value, respectivamente).
Las siguientes funciones WLanguage permiten obtener las características de una enumeración almacenada:
EnumerationCheckNameComprueba si un valor de enumeración conocido por su nombre es válido.
EnumerationCheckValueComprueba si un valor de enumeración conocido por su valor associated es válido.
EnumerationFromNameDevuelve un valor de enumeración conocido por su nombre.
EnumerationFromValueDevuelve un valor de enumeración conocido por su valor associated.

Limitaciones

  • Las enumeraciones no están disponibles en la compilación dinámica.
  • Las enumeraciones no pueden utilizarse fuera del proyecto.
Versión mínima requerida
  • Versión 18
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 09/04/2024

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