domingo, 18 de noviembre de 2018

► Dimensiones dinámicas


Imaginemos que tenemos un gráfico en el que las expresiones son siempre las mismas pero queremos representar una dimensión u otra en función de una selección que haga el usuario.
Los ejemplos de uso más comunes son:

1.-  Las traducciones a otros idiomas
Supongamos que tenemos las categorías profesionales de los empleados en un campo llamado Categorías y los valores son: Presidente, Director,  Gerente, Operario, Administrador, Soporte y necesitamos que nuestra aplicación sea multiidioma (español e inglés), pero no sólo traduciendo los textos y las etiquetas de los objetos, si no traduciendo también el idioma de los valores de las dimensiones. 
Deberíamos cambiar el nombre del campo Categorías a Categoria_ES
RENAME FIELD Categorías TO Categoria_ES

Después deberíamos crear el campo Categoria_EN con los valores President, Director, Manager, Operator,  Administrator, Support
Este nuevo campo debería formar parte del modelo de datos al mismo nivel que Categoria_ES

El tercer paso es crear una isla de datos con los idiomas. El campo idioma debe coincidir exactamente con la terminación de las dimensiones anteriores. El usuario elegirá siempre un idioma, ES o EN:

Idiomas:
LOAD * INLINE [
Idioma
ES
EN ]
;

Por último, como dimensión de gráficos, crearemos una dimensión calculada con la expresión:

=$(='Categoria_'&ONLY(Idioma))

El argumento de ONLY() es el campo “Idioma” de la isla de datos “Idiomas” y según lo que seleccione el usuario se mostrarán los valores del campo Categoria_ES o Categoria_EN

2.- Y el ahorro de tamaño del CdM en memoria. Dos latermativas posibles serían usar un grupo cíclico o crear tantos gráficos idénticos como dimensiones tengamos (en cada uno sólo cambia la dimensión) y visualizar uno u otro según se cumpla una condición o meterlos todos en un contenedor de modo que el usuario elija cuál ver.

Imaginemos que tenemos las siguientes dimensiones: Continente, País y División y queremos analizar su facturación. No queremos un grupo cíclico porque el usuario no quiere ver el icono amarillo en el gráfico y quiere ver en todo momento las opciones disponibles.
Nota para Qlik Sense: En Qlik Sense tenemos también la opción de hacer grupos cíclicos de expresiones y dimensiones, pero esto puede llevar al usuario a confusión con lo que está viendo en pantalla en un momento dado. La solución sería escribir un texto en el título del gráfico con la dimensión y la expresión utilizando las funciones GetObjectDimension y GetObjectMeasure, pero desafortunadamente estas no funcionan en los títulos de los gtáficos. La única forma de hacerlo es siguiendo el método descrito aquí.

Primero creamos una isla de datos con los nombres de las dimensiones y su representación en el CdM. Es importantísimo que los nombres de las dimensiones coincidan (mayúsculas, signos de puntuación…. Etc) con los nombres de los campos de las tablas del modelo.

Selector_1:
LOAD * INLINE [
Dim_1,             Descr_1
NOMBRE_CONTINENTE, Continente
NOMBRE_PAIS,       País
NOMBRE_DIVISION,   División
]
;


Por último, como dimensión de gráficos, crearemos una dimensión calculada con la expresión:

                 =$(=ONLY(Dim_1)) o  =$(=Dim_1)

Y la etiqueta será

             =Descr_1


No hay comentarios:

Publicar un comentario