# Variables

## Contenido

[Array: eliminar item](#array-eliminar-item)

[Array: eliminar todos](#array-eliminar-todos)

[Array: get tamaño](#array-get-tamaño)

[Array: insertar item](#array-insertar-item)

[Array: ordenar](#array-ordenar)

[Array: set](#array-set)

[Modificar variable global](#modificar-variable-global)

[Pedir dato](#pedir-dato)

[Set](#set)

## Variables

Conjunto de comandos del grupo[ Básicos.](https://doc.velneo.com/23/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/proceso/basicos) En el caso de los comandos de instrucción de proceso para operar con variables locales de tipo array, se puede observar que no existe un comando para leer una posición de un array.

Esto es así porque la lectura de una posición de una variable local de tipo array se hace de forma directa.

Para leer una posición del array, lo único que tendremos que hacer es añadir a su identificador el número de la posición a leer entre corchetes. La primera posición de un array es la 0. Ejemplo:

ID\_VARIABLE\[3]

### Array: eliminar item

Comando de instrucción del grupo Arrays que permite eliminar un item del array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la [Variable local](https://doc.velneo.com/23/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/variable-local) del objeto.

**Fórmula de posición**

Posición del item a eliminar en el array. En este parámetro podrá especificar tanto una constante como una expresión fórmula. La primera posición es la número 0.

**Identificador de variable local booleana de retorno de ok**

Aquí se declara una variable que retornará 1 si se elimina el item. Si no lo elimina devolverá 0.

#### **Funcionalidad**

Esta instrucción permite eliminar un item de una Variable local array declarada en el objeto.

#### Ejemplo

Procedemos a eliminar el item de la posición 1 de la variable MATRIZ\_TMP de tipo array.

```
Array: eliminar ítem ( MATRIZ_TMP, 1,  )
```

### Array: eliminar todos

Comando de instrucción del grupo Arrays que permite eliminar todos los items del array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la Variable local del objeto.

#### **Funcionalidad**

Esta instrucción permite eliminar todos los items de una Variable local array declarada en el objeto.

#### Ejemplo

Eliminamos todos los ítems de la variable MATRIZ\_TMP de tipo array.

```
Array: eliminar todos ( MATRIZ_TMP )
```

### Array: get tamaño

Comando de instrucción del grupo Arrays que permite conocer el número de items del array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la Variable local del objeto.

**Identificador de variable local numérica de retorno**

Aquí se declara una variable que retornará el número de items del array.

#### **Funcionalidad**

Esta instrucción permite obtener el número de items de una variable local array declarada en el objeto.

#### Ejemplo

Leemos el número de ítems o tamaño de la variable local de tipo array MATRIZ\_TMP guardándolo en la variable TAMAÑO. Posteriormente mostramos un mensaje informando del tamaño.

```
Array: get tamaño ( MATRIZ_TMP, TAMAÑO )
Mensaje ( "Hay " + TAMAÑO + " ítems en el array", Información, ,  )
```

### Array: insertar item

Comando de instrucción del grupo Arrays que permite insertar un item en el array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la Variable local del objeto.

**Fórmula de posición**

Posición del array donde insertar el item. En este parámetro podrá especificar tanto una constante como una expresión fórmula. La primera posición es la número 0.

**Fórmula de dato**

Valor a establecer al item indicado en el parámetro posición. En este parámetro podrá especificar tanto una constante como una expresión fórmula.

**Identificador de variable local booleana de retorno de ok**

Aquí se declara una variable que retornará 1 si se inserta el item. Si no lo inserta devolverá 0.

#### **Funcionalidad**

Esta instrucción permite insertar y establecer el valor de un item de una Variable local array declarada en el objeto.

#### Ejemplo

Insertamos un ítem al array MATRIZ\_TMP al final de la misma conociendo previamente el tamaño del array.

```
Array: get tamaño ( MATRIZ_TMP, TAMAÑO )
Array: insertar ítem ( MATRIZ_TMP, TAMAÑO + 1, "Valor añadido en el array",  )
```

### Array: ordenar

Comando de instrucción del grupo Básicos que permite ordenar los items del array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la Variable local del objeto.

**Orden**

Podrá optan entre dos modos: **ascendente** o **descendente**.

**Identificador de variable local booleana de retorno de ok**

Opcional. Identificador de la variable local.

#### **Funcionalidad**

Esta instrucción ordena los ítems de un array definido en el objeto.

#### **Comentarios**

La ordenación se realizará en función del tipo de contenido de la Variable local. Si es de tipo alfabético el orden será alfabético, si es de tipo numérico la ordenación será numérica y así con todos los tipos.

#### Ejemplo

Ordenamos los ítems del array MATRIZ\_TMP de forma ascendente

```
Array: ordenar ( MATRIZ_TMP, Ascendente,  )
```

### Array: set

Comando de instrucción del grupo Arrays que permite asignar valor a un item del array.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local array**

Identificador de la Variable local del objeto.

**Fórmula de posición**

Posición del array donde está el item. En este parámetro podrá especificar tanto una constante como una expresión fórmula. La primera posición es la número 0.

**Fórmula de dato**

Valor a establecer al item indicado en el parámetro posición. En este parámetro podrá especificar tanto una constante como una expresión fórmula.

**Identificador de variable local booleana de retorno de ok**

Aquí se declara una variable que retornará 1 si se modifica el item seleccionado. Si no lo modificase devolverá 0.

#### **Funcionalidad**

Esta instrucción permite establecer el valor de un item de una Variable local array declarada en el objeto.

#### Ejemplo

Modificamos el contenido del ítem de la posición 0 del array MATRIZ\_TMP estableciendo su contenido con el texto "Valor modificado"

```
Array: set ( MATRIZ_TMP, 0, "Valor modificado",  )
```

### Modificar variable global

Comando de instrucción del grupo Básicas.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador variable global**

Variable global a modificar. En este parámetro se desplegará una lista con todas las variables globales disponibles.

**Fórmula dato**

Expresión de tipo fórmula para calcular el nuevo contenido de la variable.

**Identificador de la variable local de retorno (Opcional)**

Permite guardar en una variable local del proceso el valor asignado a la variable global.

#### **Funcionalidad**

Permite modificar, por medio de una expresión de tipo fórmula, el valor de una variable global del [proyecto de datos](https://doc.velneo.com/23/velneo-vdevelop/buenas-practicas-de-programacion/buenas-practicas-de-organizacion/proyecto-de-datos-1-carpetas-esquemas-tablas-e-indices-complejos)

#### **Comentarios**

Para facilitar la creación de la fórmula podremos usar el [asistente para edición de fórmulas.](https://doc.velneo.com/23/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas)\
Como variable local del retorno podremos tanto usar tanto una ya existente como crearla nueva.

#### Ejemplo

Asignamos a la variable global FCH\_SYS la fecha del sistema y a la variable ESADM el valor booleano correspondiente dependiendo de si el usuario es administrador o no.

```
Modificar variable global ( FCH_SYS@ejemplo_dat, currentDate(),  )
If ( sysIsAdministrator )
    Modificar variable global ( ESADM@ejemplo_dat, 1,  )
Else
    Modificar variable global ( ESADM@ejemplo_dat, 0,  )
```

### Pedir dato

Comando de instrucción del grupo Básicas.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Fórmula descripción**

Expresión de tipo fórmula con texto al presentar en la ventana de solicitud del dato.

**Identificador de variable local de retorno**

Variable local en la que se guardará el dato escrito por el usuario.

**Tipo de dato**

Permite especificar de qué tipo será el dato guardado en la variable local del parámetro anterior. Los tipos de dato posibles son:

Fecha: el dato será una fecha.

Hora: el dato será una hora (de reloj).

Número: el dato será un número.

Texto: el dato será una cadena, una expresión alfabética.

**Fórmula título opcional**

Expresión de tipo fórmula que permite establecer un título opcional de la ventana. Si no se especifica título alguno, se usará como título el nombre del ejecutable. Ejemplo: vClient

**Identificador de variable local booleana de retorno de ok**

Variable local la ventana.

#### **Funcionalidad**

Comando de instrucción que muestra una ventana solicitando un dato al usuario y lo almacena una variable local.

#### **Comentarios**

Como variable local de los retornos podremos tanto usar tanto una ya existente como crearla nueva.

La variable local booleana de retorno de ok podremos evaluarla a posteriori con un comando de instrucción If en el caso de que queramos que el proceso siga caminos diferentes en función de si el usuario ha aceptado o no la ventana.

#### Ejemplo

Pedimos al usuario que teclee SEGUIR para continuar con la ejecución del proceso de altas de maestros y, en el caso contrario finalizamos el proceso para salir.

```
Pedir dato ( "Teclee SEGUIR para continuar", TEXTO, Texto, "Solicitud al usuario", OK )
If ( OK )
    If ( TEXTO ! "SEGUIR" )
        Finalizar proceso
    Else
        Ejecutar proceso ( ALTA_MAESTROS@ejemplo_dat, 1º plano: local (síncrono), , ,  )
            Libre
```

### Set

Comando de instrucción del grupo Básicas del proceso.

**Origen de la instrucción**: cualquiera.

**Destino del subproceso**: ninguno.

#### Parámetros

**Identificador de variable local**

Identificador variable local cuyo valor queremos asignar.

**Fórmula de dato**

Expresión fórmula con el valor a asignar a la variable local.

#### **Funcionalidad**

Asigna un valor a una variable variable local del proceso. La variable puede ser cualquiera de las ya declaradas previamente o puede ser creada nueva.

#### **Comentarios**

Para la especificación del contenido de la variable podemos hacer uso del asistente para edición de fórmulas.

Si el proceso es un evento al que pertenece el evento, el valor de la variable será modificado tanto dentro del proceso como en el propio objeto padre.

Si queremos inicializamos una variable local alfabética sin ningún valor, le asignaremos como fórmula dato "", ya que se no especificamos nada se inicializará con un 0.

#### Ejemplo

Asignación de valores de cadena a variables locales de tipo alfabética concatenando la suma de las tres variables en una cadena final NOMBRE\_COMPLETO.

```
Set ( NOMBRE, "Juan" )
Set ( APELLIDO1, "Pérez" )
Set ( APELLIDO2, "García" )
Set ( NOMBRE_COMPLETO, NOMBRE + " " + APELLIDO1 + " " + APELLIDO2 )
```
