Cómo crear y colocar charts en tus pages

Con la llegada de la versión de roles de NAV, tenemos a nuestra disposición la posibilidad de incluir gráficos a las pages que vayamos creando. La principal duda que se nos plantea a la hora de hacer nuestro primer chart es saber cómo se crean.

En Administración > Configuración de la aplicación > Cliente adaptado a roles > Gráficos hay un formulario preparado para crear nuevos charts:

Desde esta pantalla podemos crear nuevos charts, pero vemos que no hay una forma fácil de diseñarlos. Únicamente disponemos de una opción para importar su estructura definida en un fichero XML. Hay varias páginas y artículos que hablan sobre la estructura que tienen que tener estos ficheros, pero creo que lo mejor es utilizar la herramienta Chart Generation Tool, crear un chart sencillo y después ver el XML que se genera.

Esta herramienta está disponible para su descarga en:
http://blogs.msdn.com/b/nav/archive/2011/06/03/chart-generator-tool-for-rtc-cgtrtc.aspx

Su uso es muy sencillo. Una vez importados los objetos, buscaremos el formulario 72004 – Chart Generator Card. En este caso vamos a suponer que queremos mostrar un gráfico en el listado de clientes que muestre el número de clientes activos que hay en cada país:

Lo primero que vamos a hacer es rellenar una nueva ficha con los siguientes datos: 

En la pantalla de filtros indicaremos que únicamente queremos mostrar los clientes que no tienen ningún tipo de bloqueo:

Para terminar sólo nos queda indicar qué cálculo vamos a mostrar en el eje de las Y. NAV nos permite incluir más de una columna para contabilizar más de un tipo de dato. Una vez hecho esto, desde la ficha procederemos a crear el chart, que directamente será añadido a la pantalla de gráficos que hemos comentado al principio del post:

Ahora únicamente nos queda decidir en qué pagina vamos a mostrar el gráfico. Para ello buscamos la page 22 – Customer List, la editamos y anidamos dentro del contenedor principal una part de tipo chart. En sus propiedades indicaremos a que gráfico nos estamos refiriendo:

Al ejecutar nuestra página, el resultado no puede ser más vistoso:

Campos no editables dinámicamente

Cuando trabajamos con formularios, la forma de indicar si un campo es editable o no de forma dinámica se hace a través del cambio de propiedad editable. Más o menos sería algo así:

CurrForm.MiCampo.EDITABLE(TRUE);

En el caso de las pages es diferente, ya que la forma de acceder a las propiedades de un control ha cambiado. Ahora lo que hacemos es indicar que una propiedad va a seguir un valor estático o un valor dinámico (a través de una variable).

Como podemos ver en la imagen, pasa lo mismo con la propiedad visible o enabled.

NOTA: Recordad, que las variables que utilizamos en la página tienen que tener la propiedad IncludeInDataSet con el valor Yes.