# Variables del sistema

## Contenido

[sysCacheClientPath](#syscacheclientpath)

[sysInterchangeDat](#sysinterchangedat)

[sysIsAdministrator](#sysisadministrator)

[sysListPos](#syslistpos)

[sysListSize](#syslistsize)

[sysPageCurrent](#syspagecurrent)

[sysPageLast](#syspagelast)

[sysSerieTotal](#sysserietotal)

[sysSerieValue](#sysserievalue)

[sysUserName](#sysusername)

## Variables del sistema

Se trata de una variable de tipo local predefinida en el sistema.

Al pulsar la tecla F8, se abrirá un panel pop-up con la lista de variables del sistema. Las variables del sistema existentes son:

### **sysCacheClientPath**

Devuelve la senda de la caché local.

### sysInterchangeDat

Permite especificar en las fórmulas de [traspasos de campos](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/traspaso-de-campo) el valor del campo viejo.

### **sysIsAdministrator**

Devuelve 1 si el usuario actual es administrador y 0 si no lo es. Esta variable no es funcional en funciones remotas.

Para insertar una variable del sistema en la fórmula haremos doble clic sobre su identificador en la ventana correspondiente del asistente.

En la fórmula la variable del sistema se escribirá igual que aparece en la lista de variables del sistema.

![](https://2930358348-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M7D2zitZhY9szSsa5EK%2Fsync%2F2b1c391192554bc115f0f46a687124c85de58f92.png?generation=1589374116022564\&alt=media)

### **sysListPos**

Devuelve el elemento en curso de una lista. Podrá ser usada para leer la posición de un registro concreto dentro de una lista tras un comando de instrucción de proceso que implique selección de un registro dentro de una lista, como puede ser Seleccionar ficha por posición.

### **sysListSize**

Devuelve el número de elementos de una lista.

Ejemplo: para comprobar en un proceso si una lista que se ha cargado tiene o no registros usaremos la condición:

`If(sysListSize > 0)`

Si es mayor que 0 quiere decir que tiene algún registro, si no, no.

### **sysPageCurrent**

De uso exclusivo en [informes](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/informe). Devuelve el número de la página en curso de un informe.

### **sysPageLast**

De uso exclusivo en informes. Devuelve el número de la última página de un informe.

Ejemplo: si en un informe interno queremos imprimir en el pie de cada página “Página x de n”, podremos hacerlo usando ambas variables. La fórmula sería:

`"Página " + sysPageCurrent + " de " + sysPageLast`

> **Nota**: no es posible usar estas variables de informes para condicionar la visibilidad de una sección ya que la propia condición podría hacer cambiar el número de página. En este caso la condición debería aplicarse no a la sección sino a los controles que contenga la misma.

### sysSerieTotal

De uso exclusivo en [gráficos](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/grafico) de tipo tarta. Devuelve el valor total de todas las categorías del gráfico. Esta variable es la que debemos usar, junto con la variable [sysSerieValue](#sysserievalue) para calcular el porcentaje de cada categoría de la serie para pintarla en el gráfico.

Se pueden usar en el color de la serie, en el texto de la categoría y en el texto del agrupamiento y en el titulo de la serie.

### sysSerieValue

De uso exclusivo en [gráficos](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/grafico) de tipo tarta. Devuelve el valor total de una categoría del gráfico. Esta variable es la que debemos usar junto con la variable [sysSerieTotal](#sysserietotal-) para calcular el porcentaje de cada categoría de la serie.

La fórmula la estableceremos en la propiedad **texto categoría** de la **serie** del gráfico de tipo tarta.

La fórmula sería:

`(100*sysSerieValue)/sysSerieTotal`

Dado que el dato **texto categoría** es alfabético, convienen que formateemos el número con la función de fórmulas [nuberToString](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/editores/funciones-estandar/funciones-numericas#numbertostring)(). Ejemplo:

`numberToString(((100*sysSerieValue)/sysSerieTotal), "L", 0)`

También podríamos añadir el nombre de la categoría y el símbolo %, además del valor del porcentaje:

`#ART.NAME + ": " + numberToString(((100*sysSerieValue)/sysSerieTotal), "L", 0) + "%"`

Se pueden usar en el color de la serie, en el texto de la categoría y en el texto del agrupamiento y en el titulo de la serie.

### **sysUserName**

Devuelve el nombre del usuarios actual, es decir, el nombre del usuario que está ejecutando la aplicación.

> **Nota**: no podemos dar a una [variable local](https://doc.velneo.com/24/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/variable-local) el nombre de una variable del sistema ya que las variables de sistema son como variables locales y sus nombres son reservados, así que no se pueden usar para nombrar variables locales propias.
