# Gráfico

El gráfico es un [objeto](..) nativo que permite generar gráficos a partir de listas de registros de las [tablas](../proyecto-de-datos/tabla). Al ser una vista de datos, podemos realizar las mismas utilidades que en el resto de objetos de este tipo ([rejillas](rejilla), [informes](informe), ...) e interactuar con ellas en tiempo de ejecución, filtrando elementos, añadiendo elementos a la lista, ...

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

1. Título.
2. Leyenda.
3. Categoría.
4. Valor.
5. Eje X.
6. Etiqueta categoría.
7. Eje Y.

Una de los elementos fundamentales de esta vista de datos es que se carga de forma asíncrona, permitiendo construir gráficos con millones de registros.

Para optimizar la velocidad en la creación del gráfico, aconsejamos que en [Categoría](#categoría) y en [Valor](#valor) se asignen [campos](../editores/asistente-de-formulas/campos) de la [tabla](../proyecto-de-datos/tabla) o campos maestros. No se recomienda el uso de [fórmulas](../editores/asistente-de-formulas), ya que penalizará la creación de dicho gráfico.

Si además tenemos los datos en la caché, la velocidad será altísima.

El usuario, en tiempo de ejecución, podrá multipartir un gráfico de ventas por comercial, en distintos gráficos de ventas por comercial, por provincia, etc o por ejemplo, filtrar ese mismo gráfico de ventas por comercial por el mes en curso.

Al ser una lista se puede interactuar con la lista del gráfico para en tiempo de ejecución filtrar elementos, añadir elementos a la lista, etc.

Un gráficos es posible incrustarlo en formularios, visualizarlo a pantalla completa, en un alternador, ...

Es posible generar un gráfico en stock y utilizarlo desde un vista de datos.

También podemos insertar un gráfico en [informe personalizable](informe-personalizable/impresion-de-graficos). Para insertar un gráfico existente en un informe personalizado, podemos elegir la opción de que sea alimentado con un proceso o bien sin proceso utilizando en ese caso los registros de la lista mostrada.

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

Para generar un gráfico es necesario crear un subobjeto de tipo [**serie**](#serie).

## Propiedades del gráfico

### Identificador

Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los [inspectores ](../../inspectores)y en las propiedades de otros objetos.

### Nombre

Etiqueta alfanumérica que servirá como descriptor del gráfico. Es el texto que se presentará al usuario final de la aplicación para referenciarlo.

Podemos definir una etiqueta por cada idioma presente en el [proyecto](..).

### Estilos

Podemos definir el estilo **privado**, que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

### Comentarios

Esta propiedad nos permite documentar el uso del objeto.

### Tabla asociada

Tabla de un [proyecto de datos](../../buenas-practicas-de-programacion/buenas-practicas-de-organizacion/proyecto-de-datos-1-carpetas-esquemas-tablas-e-indices-complejos) heredado que se usará para generar el gráfico.

### Icono

Permite seleccionar un icono para mostrar en el título de la pestaña donde se muestre el icono. Si se deja vacío, se usará un icono por defecto de la plataforma.

### Título

Permite definir el título del gráfico por medio de una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello debemos pulsar el botón que aparece al editar esta propiedad y que nos abre el asistente.

### Fuente título

Esta propiedad solamente estará disponible si hemos seleccionado el valor **ninguno** en la propiedad [**tema**](#tema)**.** Nos permitirá configurar la fuente del título del gráfico.

### Color título

Esta propiedad solamente estará disponible si hemos seleccionado el valor **ninguno** en la propiedad [**tema**](#tema)**.** Nos permitirá configurar el color de la fuente del título del gráfico.

### Modo leyenda

Permite configurar la visibilidad de la leyenda que es la información de las series seleccionadas en el gráfico.

Los valores posibles son:

#### **Oculta**

La leyenda no se mostrará.

#### Visible

La leyenda se mostrará.

#### Interactiva

En ejecución permitirá al usuario pueda ocultar o visualizar una serie del gráfico haciendo clic en su valor en la serie:

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

Implica que al pulsar sobre una leyenda en concreto, se desactiva del gráfico la serie correspondiente, mostrando sólo el resto de los datos hasta que volvamos a pulsar sobre ella. Podemos pulsar tantas leyendas como datos no queramos ver en el gráfico.

En gráficos de tarta se pone a 0 el valor y los demás ganan ese espacio, así se podrán ver mejor las porciones más pequeñas.

En el caso de agrupaciones, al pulsar sobre una leyenda de las agrupaciones, se desactiva del gráfico la serie correspondiente, es decir, también el resto de agrupaciones.

Si no tenemos definidos valores fijos (máximo/mínimo) en el [eje](#eje) y (eje de valores), según ocultemos/mostremos una serie, el sistema podrá cambiar los valores máximo y mínimo del eje en función de las series que queden visibles.

### Posición leyenda

Permite configurar la ubicación de la leyenda en el caso de que sea visible. Los valores posibles son:

* Arriba.
* Abajo.
* Izquierda.
* Derecha.

### Animación

En esta propiedad seleccionaremos si queremos que al crearse el gráfico, exista una animación durante el proceso de generación de cada serie o no se genere animación y muestre el resultado de forma inmediata.

Los valores posibles son:

* Ninguna (Valor por defecto).
* Series.

### Duración animación (milisegundos)

En esta propiedad asignaremos en milisegundos la duración de la animación. Sólo estará visible si hemos seleccionado animación por series y su valor por defecto será de 1000 milisegundos.

### Tema

En esta propiedad seleccionaremos el tema del gráfico y que aplicará una serie de propiedades establecidas como son el color del fondo, color del título, color de la leyenda, color de las series, ...

Si no aplicamos tema, nos generará un tema por defecto sin necesidad de modificar las propiedades antes descritas.

Los valores posibles son:

* Ninguno. Si seleccionamos este tema, aparecerán una serie de propiedades en el gráfico para que podamos configurarlo nosotros mismos.
* Claro (valor por defecto).
* Azul cerúleo.
* Oscuro.
* Marrón arena.
* Azul NCS.
* Alto contraste.
* Azul hielo.
* Verde.

### Nº máximo de categorías

En esta propiedad asignaremos el máximo de categorías a mostrar. Por ejemplo, en un gráfico Top 10 de ventas por cliente, el contenido para esta propiedad será de 10, para que nos muestre únicamente los 10 primeros registros. Por defecto su contenido es 0 por lo que se mostrarían todos los registros.

### Ordenar por

En esta propiedad seleccionaremos el criterio por el que se ordenará el gráfico. Los valores posibles son:

* Ninguno (Valor por defecto).
* Categoría.
* Valores.

### Orden

En esta propiedad seleccionaremos el modo de ordenación que afectará al anterior ítem (_Ordenar por_). Los valores posibles son:

* Ascendente (Valor por defecto).
* Descendente.

### Formato numérico local

En esta propiedad indicaremos si queremos que a los valores numéricos del gráfico se les aplique el formato numérico local o no. Los valores posibles son:

* Verdadero.
* Falso.

### Margen izquierdo

Espacio de separación en píxeles, en el margen izquierdo, del gráfico.

### Margen derecho

Espacio de separación en píxeles, en el margen derecho, del gráfico.

### Margen superior

Espacio de separación en píxeles, en el margen superior, del gráfico.

### Margen inferior

Espacio de separación en píxeles, en el margen inferior, del gráfico.

### Toolbar

Toolbar asociada al objeto gráfico que se asociará a su visualización.

### Tipo de menú de contexto

Permite asignar un menú de contexto al control. Los valores posibles son:

* **Ninguno**: en ejecución el control carecerá de menú de contexto.
* **Por defecto**: en ejecución se usará el menú de contexto por defecto del control. No todos los controles por defecto tienen menú de contexto.
* **Personalizado**: permite indicar que el control usará un objeto menú declarado en el proyecto de aplicación o en cualquier proyecto heredado.

Los ejes de [categorías](#categoría) y [valores](#valor) son opcionales y únicamente debemos generarlos si queremos personalizarlos para modificar cualquiera de sus propiedades.

## **Serie**

Este subobjeto es la parte más importante del gráfico e imprescindible, ya que indica cómo representará los datos de la serie. Los gráficos en Velneo permiten varias series y cada una con un formato distinto (líneas, áreas, barras, tartas, ... ) sin duda una potencia y versatilidad enorme para nuestras aplicaciones.

Configuraremos también la visibilidad de los valores, prefijos y sufijos, ... y lo más importante, las tres propiedades que generarán el gráfico y que son:

### **Categoría**

[Campo](../editores/asistente-de-formulas/campos) o fórmula generador de cada serie y por el que multi-partirá los registros para acumular los valores. Por ejemplo, si queremos realizar un gráfico con las ventas realizadas a los clientes desde la tabla de Facturas de venta, la propiedad **categoría** será el campo ID del cliente (también podríamos seleccionar el nombre del cliente, su país, ...). Podemos utilizar el [asistente de fórmulas](../editores/asistente-de-formulas) para rellenar su contenido. **Es obligatorio**.

Debemos tener en cuenta de que, en el caso de que se repita el texto de la categoría, aunque la categoría definida sea distinta, si coincide el texto de la misma en dos o más registros, solamente se tendrá en cuenta el último registro de los coincidentes, obviando el resto. El programador deberá, por tanto, asegurarse en ese caso de incluir en el texto de categoría algo que diferencie realmente los elementos que se incluyan.

> **Nota**: en tiempo de ejecución, si el usuario hace clic sobre una categoría quedarán seleccionados los registros que la componen. Esto nos permitirá ejecutar [manejadores de evento](sub-objetos-de-vistas-de-datos/manejador-de-evento) sobre los mismos.

### **Valor**

Campo o fórmula acumulador por cada serie. Por ejemplo, si queremos realizar un gráfico con las ventas realizadas a los clientes desde la tabla de Facturas de venta, la propiedad _Valor_ podría ser el campo TOTAL\_FRA (podemos asignar campos, fórmulas, ...).

Además de poder asignar campos y fórmulas, también podemos asignar un valor absoluto. Por ejemplo, para hacer un gráfico del número de clientes por país, en el campo Valor pondríamos un 1. Esto nos mostraría el número de clientes por cada uno de los países.

Podemos utilizar el asistente de fórmulas para rellenar su contenido. **Es obligatorio**.

### **Agrupamiento**

Campo o fórmula que generará sub-series por cada serie. Por ejemplo, si queremos realizar un gráfico con las ventas realizadas a los clientes desde la tabla de Facturas de venta agrupándolos por años, la propiedad **agrupamiento** será el campo EJERCICIO. Podemos utilizar el asistente de fórmulas para rellenar su contenido. Es opcional.

Una vez completadas las propiedades Categoría, Valor y/o agrupamiento, podemos seguir configurando el resto de las propiedades del gráfico.

Debemos tener en cuenta de que, en el caso de que se repita el texto del agrupamiento, aunque el agrupamiento definido sea distinto, si coincide el texto del mismo en dos o más registros, solamente se tendrá en cuenta el último registro de los coincidentes, obviando el resto. El programador deberá, por tanto, asegurarse en ese caso de incluir en el texto de agrupamiento algo que diferencie realmente los elementos que se incluyan.

> **Nota:** aunque los gráficos de tarta soportan agrupamientos, no es posible mostrar el nombre de los agrupamientos para cada tarta que se crea.
>
> Los agrupamientos soportan la ordenación de las categorías, realizándose por cada serie generada para el agrupamiento, es decir, por cada categoría se mostrará de forma ordenada los elementos calculados de la agrupación.

El resto de las propiedades de una serie son:

### Identificador

Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los [inspectores ](../../inspectores)y en las propiedades de otros objetos.

### Nombre

Etiqueta alfanumérica que servirá como descriptor del gráfico. Es el texto que se presentará al usuario final de la aplicación para referenciarlo.

Podemos definir una etiqueta por cada idioma presente en el [proyecto](..).

### Estilos

Podemos definir el estilo **privado**, que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

### Comentarios

Esta propiedad nos permite documentar el uso del sub-objeto.

### Tipo serie

Esta propiedad nos permite indicar el tipo de gráfico que generaremos con la serie. Los tipos de gráficos disponibles son:

#### **Líneas**

Para una correcta visualización del gráfico, es aconsejable ordenar los valores previamente para que su representación sea continua y similar a la de la imagen.

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

#### **Areas**

Similar al [gráfico de líneas](#líneas), su representación se realiza generando áreas sólidas desde el inicio del primer valor al siguiente y así sucesivamente.

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

#### **Barras verticales**

Este tipo de gráfico es el más utilizado para representar valores (en el ejemplo acumulamos importes de venta) agrupados por diferentes categorías (en el ejemplo las categorías se generan por cada ejercicio). Opcionalmente, podemos añadir [agrupamientos](#agrupamiento) para generar sub-series (en el ejemplo generamos un agrupamiento por cada comercial).

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

#### **Barras apiladas verticales**

Idéntico al gráfico de [barras verticales](#barras-verticales) pero apilando las diferentes categorías o agrupamientos.

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

#### **Barras porcentuales verticales**

Idéntico al gráfico anterior pero en lugar de que los valores son absolutos (el total de las ventas), se calculan de forma automática los porcentajes de esos importes respecto a la suma total.

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

#### **Barras horizontales**

Idéntico al gráfico de [barras verticales](#barras-verticales).

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

#### **Barras apiladas horizontales**

Idéntico al gráfico de [barras apiladas verticales](#barras-apiladas-verticales).

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

#### **Barras porcentuales horizontales**

Idéntico al gráfico de[ barras porcentuales verticales](#barras-porcentuales-verticales).

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

#### **Tarta**

Este tipo de gráfico es muy utilizado para representar estadísticas con un número de categorías finito o no muy alto (por ejemplo ventas por familia, por países, por comercial, ...) ya que su visualización global sería difícil (por ejemplo un gráfico de ventas de todos los clientes).

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

#### Puntos

Este tipo de gráfico nos muestra los valores en coordenadas X e Y. Suele utilizarse para mostrar valores en un periodo de tiempo, etc.

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

#### Curvas

Este tipo de gráfico es idéntico al gráfico de [líneas](#líneas) pero mostrando la unión de valores de forma curva en lugar de líneas rectas.

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

### Fórmula filtro

En este parámetro podremos aplicar un filtro a la lista. El filtro será establecido en una [fórmula](../editores/asistente-de-formulas).

### Color serie (hexadecimal)

En esta propiedad podremos personalizar el color con el que se pintará la serie, especificando su valor hexadecimal. Se trata de una [fórmula](../editores/asistente-de-formulas), por lo que su código deberá especificarse entrecomillado. Ejemplo: `"#DF0101"`

Esta propiedad se calcula también en cada agrupamiento, con lo que podremos especificar un color en función del valor de cada agrupamiento, es decir, podemos elegir el color en función de una fórmula. Por ejemplo, para que cada porción de un gráfico de Tarta nos pinte en función de la familia del artículo la expresión sería esta:

```
"#" + choose( #ART.FAM = "CBER", "990000", "" ) + choose( #ART.FAM = "CDEP", "009900", "" ) + choose( #ART.FAM = "CTTR", "000099", "" )
```

Otra opción podría ser el combinar una expresión en función del año del registro:

`"#" + numberToStringHex(#AÑO)`

### Tipo categoría

Esta propiedad solamente estará disponible en gráficos de tipo líneas, áreas, puntos y curvas. En esta propiedad debemos especificar el tipo de dato de la [**categoría**](#categoría). Los valores posibles son:

* Texto.
* Numérico.
* Tiempo.

Si queremos acumular por categoría elegiremos el tipo texto, en caso contrario, la categorías se tratarán como coordenadas.

En los tipos de gráfico en los que no está disponible, los valores de la categoría serán ordenados como texto.

> **Truco**: si en un **gráfico de barras** queremos que la **categoría** sea el mes de una fecha (month(#FCH)), dado que en este tipo de gráfico la categoría será ordenada como cadena es decir: 1, 10, 11, 12, 2, 3...), para ordenarlo por mes lo que haremos será justificar el número del mes a la derecha y rellenando con ceros a la izquierda: rightJustified(month(#FCH), 2, "0"), así, los meses saldrán ordenados como se desea: 01, 03, 03, 04, 05, 06...

### Texto categoría

Si dejamos esa propiedad en blanco, se usará como texto lo que hayamos establecido en la propiedad **categoría**. En el caso de que queramos usar un texto distinto, podremos especificarlo mediante una [fórmula](../editores/asistente-de-formulas). Por ejemplo, si estamos generando un gráfico de ventas por cliente a partir de una tabla de facturas, si en la **categoría** hemos usado el enlace a clientes `#ENT`, en esta propiedad podríamos establecer el nombre del cliente (`#ENT_NAME`), ya que de lo contrario como texto de la categoría se pintaría su ID.

Si en un gráfico de tarta queremos mostrar el porcentaje que supone cada porción del gráfico lo estableceremos en esta propiedad. Para ello disponemos de las variables del sistema [sysSerieTotal](../../editores/asistente-de-formulas/variables-del-sistema#sysserietotal) y [sysSerieValue](../../editores/asistente-de-formulas/variables-del-sistema#sysserievalue) y la fórmula sería:

`(100*sysSerieValue)/sysSerieTotal`

Dado que el dato **texto categoría** es alfabético, convienen que demos formato al número obtenido con la función de fórmulas [nuberToString](../../editores/asistente-de-formulas/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) + "%"`

De este modo el resultado sería algo similar a esto:

`Impresora: 23%`

### Texto agrupamiento

Si dejamos esa propiedad en blanco, se usará como texto lo que hayamos establecido en la propiedad **agrupamiento**. En el caso de que queramos usar un texto distinto, podremos especificarlo mediante una [fórmula](../editores/asistente-de-formulas).

### Visibilidad de etiquetas

En esta propiedad indicaremos si queremos que en el gráfico se muestren etiquetas con los valores de la serie. Por ejemplo, si se trata de un informe de ventas por cliente de tipo barras verticales, dentro de cada barra se pintaría el importe total acumulado. Los valores posibles son:

* Verdadero.
* Falso.

### Modo visibilidad de etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) de la serie es **verdadero**. En esta propiedad indicaremos cómo queremos que se muestren las etiquetas.Los valores posibles son:

* Centrado.
* Dentro (arriba/horizontal).
* Dentro (abajo/tangencial).
* Fuera.

### Fuente etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) de la serie es **verdadero** y si la propiedad [**tema**](#tema) del gráfico tiene el valor **ninguno**. Nos permitirá configurar la fuente de las etiquetas.

### Color etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) de la serie es **verdadero** y si la propiedad [**tema**](#tema) del gráfico tiene el valor **ninguno**. Nos permitirá configurar el color de la fuente de las etiquetas.

### Ángulo etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) es **verdadero**. Si queremos que las etiquetas se pinten en un ángulo determinado, en esta propiedad especificaremos el mismo. El valor por defecto es 0.

### Prefijo etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) es **verdadero**. Si queremos que a cada etiqueta se le añada un prefijo, especificaremos éste a través de una [fórmula](../editores/asistente-de-formulas). Ejemplo: `"$"`

### Sufijo etiquetas

Esta propiedad solamente estará disponible el el valor de la propiedad [**visibilidad de etiquetas**](#visibilidad-de-etiquetas) es **verdadero**. Si queremos que a cada etiqueta se le añada un sufijo, especificaremos éste a través de una [fórmula](../editores/asistente-de-formulas). Ejemplo: `"€"`

### Ancho barra

Se debe expresar en unidades del eje de categorías. Si lo dejamos a 0 se aplicará de forma automática.

## **Eje**

Este sub-objeto representa cada eje del gráfico. Sus propiedades son:

### Identificador

Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los [inspectores ](../../inspectores)y en las propiedades de otros objetos.

### Nombre

Etiqueta alfanumérica que servirá como descriptor del gráfico. Es el texto que se presentará al usuario final de la aplicación para referenciarlo.

Podemos definir una etiqueta por cada idioma presente en el [proyecto](..).

### Estilos

Podemos definir el estilo **privado**, que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

### Comentarios

Esta propiedad nos permite documentar el uso del objeto.

### Tipo

Tipo de eje. Los valores posibles son:

* **Eje categorías categorías**: es el eje horizontal del gráfico y en el ejemplo descrito antes,  es donde se representará un registro por cada cliente, pudiendo mostrar cualquier campo o fórmula (por ejemplo el nombre del cliente).
* **Eje valor**: es el eje vertical del gráfico y en el ejemplo descrito antes,  es donde se representará el rango de los importes de venta de cada cliente, desde 0 (en el caso de ser todos los valores positivos) hasta el máximo del importe de ventas.

### Tipo categoría

Esta propiedad estará visible si en la propiedad [**tipo**](#tipo) del eje hemos seleccionado el valor **eje categorías** y nos permitirá indicar de qué tipo es la categoría. Los valores posibles son:

* Numérico.
* Texto.
* Tiempo.

El tipo deberá ser el mismo que el tipo de categoría de la [serie](#serie) del gráfico.

### Título

Nos permite establecer un título al eje. Su contenido se establecerá mediante una [fórmula](../editores/asistente-de-formulas).

### Fuente título

Esta opción estará disponible si en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar la fuente del título del eje.

### Color título

Esta opción estará disponible si en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar el color de la fuente del título del eje.

### Etiquetas visibles

En esta propiedad indicaremos si queremos que en el gráfico se muestren etiquetas del eje.Los valores posibles son:

* Verdadero.
* Falso.

### Fuentes etiquetas

Esta opción estará disponible si en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar la fuente de las etiquetas del eje.

### Color etiquetas

Esta opción estará disponible si en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar el color de la fuente de las etiquetas del eje.

### Ángulo etiquetas

Esta propiedad estará disponible solamente si hemos establecido en valor **verdadero** en la propiedad **etiquetas visibles**. Si queremos que las etiquetas se pinten en un ángulo determinado, en esta propiedad especificaremos el mismo. El valor por defecto es 0.

### Máscara fecha etiquetas

Esta opción estará disponible si en la propiedad [**tipo categoría**](#tipo-categoría) del eje hemos seleccionado el valor **tiempo** y en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá especificar una máscara para aplicar al dato de tipo tiempo del eje. Las máscaras para fechas son:

| Carácter | Descripción                                                                                                                                                                                                                            |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| d        | Día del mes (1-31)                                                                                                                                                                                                                     |
| dd       | Día del mes (01-31)                                                                                                                                                                                                                    |
| ddd      | Día de la semana (Lun-Dom)                                                                                                                                                                                                             |
| dddd     | Día de la semana (Lunes-Domingo)                                                                                                                                                                                                       |
| M        | Mes (1-12)                                                                                                                                                                                                                             |
| MM       | Mes (01-12)                                                                                                                                                                                                                            |
| MMM      | Mes (Ene-Dic)                                                                                                                                                                                                                          |
| MMMM     | Mes (Enero-Diciembre)                                                                                                                                                                                                                  |
| yy       | Año (00-99)                                                                                                                                                                                                                            |
| yyyy     | Año (0000-9999)                                                                                                                                                                                                                        |
| \\       | Usar el carácter con algún símbolo de los anteriores para ser usado como separador y no como cadena de formato. Ejemplo: si en una cadena de formato escribimos \d, la "d" no será tomada como cadena de formato, sino como separador. |

### Prefijo etiquetas

Esta opción estará disponible si en la propiedad [**tipo categoría**](#tipo-categoría) del eje hemos seleccionado el valor **numérico** y en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar un prefijo para las etiquetas del eje. Su contenido se establecerá mediante una [fórmula](../editores/asistente-de-formulas).

### Sufijo etiquetas

Esta opción estará disponible si en la propiedad [**tipo categoría**](#tipo-categoría) del eje hemos seleccionado el valor **numérico** y en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar un sufijo para las etiquetas del eje. Su contenido se establecerá mediante una [fórmula](../editores/asistente-de-formulas).

### Decimales etiquetas

Esta opción estará disponible si en la propiedad [**tipo categoría**](#tipo-categoría) del eje hemos seleccionado el valor **numérico** y en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar el número de decimales que se usarán en las etiquetas del eje.

### Estilo línea

Esta opción estará disponible si en la propiedad [**tema**](#tema) del gráfico hemos seleccionado el valor **ninguno**. Nos permitirá configurar el estilo que se aplicará a las líneas del eje. Los valores posibles son:

* **Sin líneas**: no se pintarán las líneas en el eje.
* **Sólida**: se pintará una línea sólida (\_\_\_\_\_).
* **Rayas**: se pintará una línea de rayas (----).
* **Puntos**: se pintará una línea de puntos (...).
* **Raya punto**: se pintará una línea combinando una raya y un punto (-.-.-).
* **Raya punto punto**: se pintará una línea combinando una raya y dos puntos (-..-..-).

### Color línea

Esta propiedad estará disponible si en la propiedad [**estilo línea**](#estilo-línea) hemos seleccionado un valor distinto de **ninguno**. Nos permitirá configurar el color de la línea del eje.

### Tamaño línea rejilla

Esta propiedad estará disponible si en la propiedad [**estilo línea**](#estilo-línea) hemos seleccionado un valor distinto de **ninguno**. Nos permitirá configurar el tamaño en píxels de la línea del eje.

### Número líneas rejilla

En esta propiedad indicaremos el número de líneas principales que queremos presentar en el eje.

### Número líneas menores

En esta propiedad indicaremos el número de líneas menores que se presentarán entre cada línea principal.

### Mínimo

Valor mínimo que se representará en el eje.

### Máximo

Valor máximo que se representará en el eje.

### Invertir

Nos permite indicar si queremos que los valores del eje se muestren en orden inverso. Por defecto se representan de menor a mayor. Si invertimos el orden, se presentarán de menor a mayor.

## Asistente para la creación de un gráfico

Para facilitar la creación de un gráfico se dispone de un asistente, que se iniciará automáticamente al añadir un objeto de este tipo en un proyecto de aplicación.

En el primer paso debemos indicar el [tipo de gráfico](#tipos-de-gráficos) que queremos usar (líneas, áreas, etc).t

En el paso siguiente debemos especificar:

**Tabla**: tabla de un [proyecto de datos](../../buenas-practicas-de-programacion/buenas-practicas-de-organizacion/proyecto-de-datos-1-carpetas-esquemas-tablas-e-indices-complejos) heredado que se usará para generar el gráfico.

[**Categoría**](#categoría): [campo](../editores/asistente-de-formulas/campos) generador de cada serie y por el que multi-partirá los registros para acumular los valores. Por ejemplo, si queremos realizar un gráfico con las ventas realizadas a los clientes desde la tabla de Facturas de venta, la propiedad **categoría** será el campo ID del cliente (también podríamos seleccionar el nombre del cliente, su país, ...).

[**Valor**](#valor): campo o fórmula acumulador por cada serie. Por ejemplo, si queremos realizar un gráfico con las ventas realizadas a los clientes desde la tabla de Facturas de venta, la propiedad _Valor_ podría ser el campo TOTAL\_FRA.

Este asistente permite crear un gráfico básico, en el caso de que queramos crear gráficos más complejos, por ejemplo, que se requiera especificar una [fórmula](../editores/asistente-de-formulas) para establecer la categoría o el valor, podremos dejar esos parámetros del asistente vacíos y establecerlos una vez creado el gráfico.

Una vez creado el gráfico, se mostrará una previsualización del mismo en el panel central de [Velneo vDevelop](../../introduccion).

## Acceder a los registros del gráfico

Podemos hacer uso de la [señal](sub-objetos-de-vistas-de-datos/conexion-de-evento) **item: simple clic** en gráficos para obtener en un [manejador de evento](sub-objetos-de-vistas-de-datos/manejador-de-evento) la lista de registros correspondientes a un elemento de un gráfico: una serie, una barra, un agrupamiento, etc.

Si la señal está definida, el usuario final, cuando pase el cursor sobre el gráfico se cambiará a una mano.
