Tablas Drilldown
Las tablas drilldown son tablas anidades donde el contenido anidado está oculto y se va desplegando a voluntad, es decir, cada fila de un primer nivel contiene un segundo nivel con varias subfilas, que a su vez puede contener un sucesivos niveles siguiendo una jerarquía. La tabla sigue por tanto un esquema de tipo árbol en forma tabular.
![Ejemplo de una tabla](images/tabla_drilldown_ejemplo.png)
Para mejorar la eficiencia de las consultas aunque se incluyan varias dimensiones en una tabla drilldown solo se cálcula "lo que se muestra", esto es, el primer nivel de anidación. A medida que el usuario va desplegando más contenido se ejecutan consultas particulares según la "nueva" petición. De esta forma el rendimiento es óptimo, aún cuando la tabla pueda constar de muchos datos y/o operaciones o fórmulas complejas, y justifica la separación de las tablas drilldown como componente independiente de las tablas normales.
Se revisa en detalle la gestión de las tablas drilldown en las siguientes secciones:
Creación de una tabla
La creación de las tablas drilldown se realiza mediante el diálogo de consultas. Tras seleccionar el dataset que será fuente de datos es preciso elegir una jerarquía que marque la estructura de niveles de la tabla, de hecho Tabulae solo habilita para su selección los datasets que contengan jerarquías. Tras seleccionar una jerarquía la consulta se construye con normalidad, en tantos pasos como sea necesario. Finalmente, para que la consulta sea válida, hay unos requisitos que se tienen que cumplir:
Hay que incluir necesariamente un bloque agrupar en la consulta, de tal forma que tenga sentido desplegar/replegar niveles en función de una agregación. Los campos de agrupación tienen que pertenecer a la jerarquía, aunque no es necesario usar todos los que componen ésta.
Hay que incluir al menos dos dimensiones que pertenezcan a la jerarquía en el resultado final de la consulta. Logicamente son necesarias dos dimensiones de la jerarquía para que haya drilldown, sino la tabla sería una tabla simple con una dimensión. El número de dimensiones jerárquicas incluidas será el el número de niveles presentes en la tabla.
Se pueden incluir dimensiones que no pertenezcan a la jerarquía, pero éstas tienen que ser agregadas por una función (no pueden ser ids del agregado), al igual que las medidas.
![Ejemplo de una consulta con drilldown válida](images/tabla_drilldown_ejemplo_consulta.png)
Una vez creado el contenido, siempre se puede modificar de nuevo. Para acceder al editor hay que seleccionar el widget (clic sobre él) y hacer clic en el icono , que muestra la consulta tal y como se creó/modificó anteriormente.
Comportamiento de las tablas
Una tabla con drilldown es una tabla en la que van apareciendo niveles de datos a medida que el usuario va demandando más detalle, siguiendo una estructura de anidación fija (en forma de árbol horizontal). Visualmente el comportamiento es que una fila se desdobla en varias "subfilas", repitiéndose este comportamiento tantas veces como niveles haya incluidos. El número de niveles y su orden viene predefinido por los campos pertenecientes a la jerarquía seleccionada que se hayan incluido en la tabla.
Los componentes interactivos de una tabla drilldown son los siguientes:
Maximizar tabla
Cuando la tabla forma parte de una composición con más widgets puede tener un espacio limitado, y en ocasiones puede verse "pequeña" o aparecer con mucho "scroll" o desplazamiento (tanto horizontal como vertical). El widget tiene una opción de maximizar la ventana (tanto en edición como en modo vista), de tal forma que ocupa la pantalla completa y así se pueden apreciar con claridad todos los detalles. Para maximizar la tabla hay que hacer clic en el icono en la parte superior derecha del widget. En modo vista, aparece cuando el puntero está encima del widget, y en modo edición cuando se selecciona el mismo). La ventana maximizada se cierra haciendo clic en el icono en la parte superior derecha de la pantalla.
![Opción para maximizar una tabla](images/tabla-drilldown-maximizar.png)
Cabeceras
La cabecera o encabezamiento de una tabla simple corresponde a la primera fila de la tabla. En ella, para cada columna, se indica el nombre o etiqueta del concepto que se representa en las celdas siguientes.
![Ejemplo de una cabecera en una tabla drilldown](images/tablas_cabecera_drilldown.png)
Hay dos características que facilitan la visualización de los datos:
Cabecera fija: En caso de haber scroll (barra de desplazamiento vertical) para ver valores que no entran en el espacio del widget la cabecera permanece fija en la parte superior de la tabla, para mantener la referencia del concepto que se está visualizando.
Orden de la tabla: Haciendo clic en una celda de la cabecera la tabla se ordena conforme al contenido de esa columna. Con un clic se hace un orden descendente, y con un segundo clic un orden ascendente. Si una tabla está ordenada por una columna, se ve un icono triangular al lado del nombre de esa columna indicando si el orden es descendente o ascendente . Este reordenamiento no mezcla contenido de diferentes "ramas", es decir, respeta la estructura de anidación por niveles.
Botones de drilldown
En una tabla drilldown las filas principales se van desplegando individualmente al hacer click en el botón , a la izquierda de cada celda en la columna que corresponde a la jerarquía (que siempre es la primera por la izquierda). De igual forma, una vez que un nivel está desplegado el botón se convierte en , y haciendo clic en él se cierra el nivel desplegado. Al llegar a un nodo terminal (última dimensión de la jerarquía)j el icono se convierte en un .
![Ejemplo con niveles abiertos, por abrir y nodos terminales en una tabla drilldown](images/tablas_botones_drilldown.png)
Configuración de filtros
El menú de configuración o playground de una tabla drilldown solo aplica para informes. Se accede haciendo clic en el icono en la parte superior derecha de la tabla, lo que habilita un desplegable que muestra todas las dimensiones y medidas disponibles en la tabla, y permite establecer filtros sobre la misma. En el caso de las aplicaciones dashboard la misma funcionalidad es la que presentan los diversos widget de tipo filtro, pero de forma externa a la tabla.
![Menú de configuración en una tabla drilldown](images/tablas_configuracion_drilldown.png)
En la configuración de una tabla, haciendo clic sobre el nombre de la dimensión se despliega un combo con los valores que se pueden seleccionar, o en el caso de una medida elegir un intervalo.
También se puede cambiar el modo de selección de valores para una dimensión, entre sencilla (1 valor) y múltiple, haciendo clic en el icono a la izquierda del nombre de la dimensión.
En ocasiones la ventana desplegada puede interferir en la visualización de la tabla, ya que se superpone a ésta. En estos casos el menú de configuración se puede hacer flotante y situar en el lugar que se desee. Para ello no hay más que hacer clic en el icono en la parte superior derecha de la ventana de configuración. Ahora, pasando el ratón por la barra superior de la ventana y arrastrando ésta se puede mover a voluntad. Además, la barra se puede minimizar u ocultar, haciendo clic en el botón de la parte superior. Para que el desplegable vuelva a su lugar de origen hay que hacer clic de nuevo en el icono .
![Menú de configuración flotante](images/tablas_configuracion_flotante_drilldown.png)
Layout
En la parte superior derecha del widget hay un icono que despliega un selector de layout o disposición de campos de la tabla. En el caso de la tabla drilldown el layout consiste simplemente en un selector de que campos se mostrarán en la tabla, excluyendo la jerarquía, que siempre será visible.
![Menú de layout de una tabla drilldown](images/tablas_layout_drilldown.png)
Haciendo clic en cualquiera de los campos éste se selecciona/deselecciona, y la tabla se rediseña mostrando las dimensiones y medidas seleccionadas. Además, al deseleccionar un campo el menú se reduce, para mostrar solo los campos visibles (hay un contador/total de campos en la parte superior del menú). Para ver todos los campos de nuevo hay que hacer clic en el botón "MÁS" en la parte inferior del menú, y para volver a ocultar los no visibles se hace clic en el botón "MENOS". También es posible cambiar la posición original de los campos en la tabla, no hay más que hacer clic sobre el campo deseado en el menú y arrastrar al lugar deseado..
En ocasiones la ventana desplegada puede interferir en la visualización de la tabla, ya que se superpone a ésta. En estos casos el menú de layout se puede hacer flotante y situar en el lugar que se desee. Para ello no hay más que hacer clic en el icono en la parte superior derecha de la ventana de configuración. Ahora, pasando el ratón por la barra superior de la ventana y arrastrando ésta se puede mover a voluntad. Además, la barra se puede minimizar u ocultar, haciendo clic en el botón de la parte superior. Para que el desplegable vuelva a su lugar de origen hay que hacer clic de nuevo en el icono .
![Menú de layout flotante](images/tablas_layout_flotante_drilldown.png)
Exportar
La tabla drilldown se puede exportar a varios formatos (siempre tabulares), a partir del botón en la parte superior derecha del widget. Las opciones son las siguientes:
Datos (CSV): Se exportan los datos que se representan en el gráfico (dimensiones y medidas) a un archivo con formato csv.
Datos (Excel): Se exportan los datos que se representan en el gráfico (dimensiones y medidas) a un archivo con formato excel.
![Exportar una tabla drilldown](images/tabla-drilldown-exportar.png)
Warning: La exportación en este caso es especial, no se exporta la información tal cual se visualiza en la tabla sino la tabla completa (es decir, aquella que permite reproducir la tabla con todos sus niveles). La jerarquía se presenta entonces en forma de "columnas" que, sin tener anidación (esto es, es un formato tabular plano), replican la estructura de niveles de una tabla anidada.
Vistas
El menú de vistas accesible desde el botón solo aplica para informes, mientras que para dashboards las vistas son globales por pestaña. Una vista en una tabla drilldown guarda los filtros aplicados en la configuración. Así, haciendo clic sobre una vista existente se accede directamente a esa configuración guardada.
![Menú de creación y selección de vistas en una tabla drilldown](images/tablas_vistas_drilldown.png)
Personalización de una tabla drilldown
Una vez creada la tabla se le puede dar estilo: título, formatos, etiquetas, colores, etc. Para acceder a la personalización hay que seleccionar el widget (hacer clic sobre él) y hacer clic en el icono de opciones .
![Diálogo de personalización de la configuración de una tabla drilldown](images/tablas_drilldown_personalizacion.png)
Se podrán configurar de forma personalizada las siguientes categorías:
General: Se controlan los aspectos visuales y configuración general de la tabla.
Dimensiones: En esta pestaña se configuran las opciones asociadas a la jerarquía y a cada campo representado en la tabla.
Layout: En esta pestaña se configura el orden de los campos incluidos en la tabla.
Filters: En esta pestaña se configura el comportamiento de cada campo representado en el gráfico en relación con los filtros existentes en la aplicación (dashboard).
A continuación se detallan las diferentes opciones de la personalización.
Configuración General
La pestaña "General" se divide a su vez en varias secciones que agrupan diferentes opciones de personalización relacionadas entre sí:
Opciones de widget
![Sección de Opciones de widget de la configuración General](images/tabla-drilldown-personalizacion-general-opciones-widget.png)
Título del widget: Todos los widgets pueden incluir un título que permite definir lo que representa. La cadena de texto escrita será el título del widget,que aparecerá en la parte superior del mismo. El icono a la derecha del texto da acceso a un menú que permite incluir parámetros en el título si así se desea:
Valores de filtros: En caso de que una dimensión tenga un único valor seleccionado se muestra tal valor, y en caso de tener múltiples valores se muestra una cadena vacía.
Valores de simulación o escenarios: Permite mostrar el valor seleccionado de una variable escenario.
Valores de subconsultas: Permite elegir el primer valor del campo seleccionado del primer registro de una subconsulta.
Imagen - Menú de variables en títulos
Orden alternativo: Indica, de cara a las vistas móvil y de impresión/PDF, el orden por el que se mostrarán los widgets en caso de haber más de uno.
Quitar el borde del widget: Permite eliminar el borde de los widgets.
Quitar el título del widget: Permite eliminar el título de los widgets, pasando el contenido de la tabla a ocupar todo el espacio del widget.
Añadir clase CSS: Permite añadir uno o varias clases CSS predefinidas al widget, de forma que se modifica el estilo del mismo (bordes, iconos, colores de fondo/texto, etc). Hay disponibles algunas clases CSS especiales para tablas que permiten elaborar estilos habituales. No obstante, si el susuario desconoce el código CSS, al hacer clic en el icono accede a un diálogo visual donde se eligen varias opciones simples de estilo:
Imagen - Diálogo de personalización del estilo del widget Estilo del borde del widget: Permite personalizar el aspecto del borde del widget.
Con borde
Con sombra
Icono de fondo del widget: Permite seleccionar un icono y su color, para situarlo como imagen de fondo que por defecto se muestra en la parte inferior izquierda del widget.
Estilo del título: Permite añadir color de fondo en la barra del título y poner este en blanco.
Estilo del cuerpo: Permite dar color al fondo del widget, con tono suave, medio o fuerte.
Selección de colores: Permite elegir entre una selección de los colores más habituales. El color elegido se usará para colorear las opciones anteriores en caso de estar habilitadas.
Previsualizar: En el propio diálogo, en la parte superior derecha, se muestra una previsualización del estilo.
Mostrar botón de información: Añade un botón en la parte superior derecha del widget que muestra cuando se actualizaron los datos, esto es, la fecha de actualización del dataset con el que se construye la consulta que genera el contenido del widget.
![Tabla drilldown que muestra la fecha de actualización de los datos](images/tabla-drilldown-boton-info.png)
Deshabilitar el menú de exportar: Retira el menú de exportar, que se muestra por defecto permitiendo exportar los datos de la tabla a CSV/Excel.
Deshabilitar el menú de layout: Retira el menú de layout, que se muestra por defecto permitiendo al usuario ocultar/mostrar campos a voluntad.
Opciones de impresión
Permite definir la disposición del widget en caso imprimir la app:
![Sección de Opciones de impresión de la configuración General](images/tabla-drilldown-personalizacion-general-opciones-impresion.png)
Permitir imprimir en dos columnas: Por defecto cada widget ocupa todo el ancho de la hoja, con esta opción se pueden situar dos widgets en paralelo, esto es, este widget y el siguiente se muestran en dos columnas.
Imprimir en una página nueva: Situa el widget en una página nueva en el flujo de impresión (inserta un salto de página antes del widget).
Configuración de Dimensiones
Esta pestaña permite configurar las opciones de personalización asociadas a la jerarquía y a cada una de las dimensiones y medidas accesibles en la tabla, dependiendo del tipo de dato de la columna:
Opciones para la jerarquía
![Ejemplo de personalización de la jerarquía](images/tabla-drilldown-personalizacion-jerarquia.png)
En este caso se permite escribir una nueva etiqueta que aparecerá como cabecera de la primera columna de la tabla drilldown, que presenta la jerarquía de la tabla. De no rellenar este campo aparece el nombre de cada campo que compone la jerarquía de la tabla separados por una barra "\".
Opciones para columnas de tipo fecha
![Ejemplo de personalización de un campo de tipo fecha](images/tabla-drilldown-personalizacion-dimension-fecha.png)
Etiqueta: Permite renombrar la dimensión que se mostrará en la tabla.
Formato: Permite seleccionar el formato con el que se mostrarán las fechas en el gráfico, indicando por ejemplo si se muestra la fecha completa con horas y minutos, sólo el año, etc. El icono da acceso al detalle de las opciones de formato que se pueden usar.
Warning: En caso de usar formato que incluya cadenas de texto, como el nombre de los días o de los meses, se usará por defecto el idioma predefinido en el navegador.
![Menú con opciones de formato de fecha](images/tabla-personalizacion-dimension-fecha-formato.png)
Opciones para columnas de tipo texto
![Ejemplo de personalización de un campo de tipo texto (o georef)](images/tabla-drilldown-personalizacion-dimension-texto.png)
Etiqueta: Permite renombrar la dimensión que se mostrará en la tabla.
Usar orden personalizado: Permite establecer un orden personalizado de los valores distinto al orden utilizado por defecto.
- Restore: Deshace todos los cambios hechos en para el criterio de orden y recupera los valores originales.
Opciones para columnas de tipo numérico
![Ejemplo de personalización de un campo de tipo numérico](images/tabla-drilldown-personalizacion-medida.png)
Etiqueta: Permite renombrar la medida que se mostrará en la tabla.
Unidad: Permite indicar la unidad que aparecerá en el gráfico (si se deja vacía se toma la unidad definida en el dataset, si la hubiera).
Precisión: Permite indicar el número de decimales que se mostrarán al visualizar los valores numéricos (el separador decimal depende del idioma elegido en Tabulae: en idioma español se usa la ",", y en inglés el ".").
Pipe: Permite establecer formatos especiales para el valor numérico mostrado. Hay las siguientes opciones que se eligen en el desplegable:
- Formato día, hora, minuto y segundo: Convierte el valor numérico asociado a un intervalo temporal en segundos (o milisegundos) a formato "días, horas, minutos y segundos". Ejemplo: el intervalo
1 día, 1 hora, 30 minutos y 15 segundos
trasladado a segundos es1 * 86400s/d + 1 * 3600s/h + 30 * 60s/m + 15s = 91.815s
. Entonces, al seleccionar esta opción, el valor numérico91815
aparecerá como1d 01h 30m 15s
. - Formato HH:MM:SS : Convierte el valor numérico asociado a un intervalo temporal en segundos (o milisegundos) a formato "horario", considerando el valor como la fracción de segundos (o milisegundos) respecto de los relativos a un día. Ejemplo: la hora
01:30:15
trasladada a segundos es1 * 3600s/h + 30 * 60s/m + 15s = 5415s
, que respecto de los86400s
que tiene un día da una fracción0.062673611
. Entonces, al seleccionar esta opción, el valor numérico0.062673611
aparecerá como01:30:15
. - Número aproximado: Redondea el valor a 3 cifras y 2 decimales, e incluye la escala de unidad que proceda. Por ejemplo
1.776.840
pasa a ser1,78M
, y624.548
pasa a ser624,55k
.
- Formato día, hora, minuto y segundo: Convierte el valor numérico asociado a un intervalo temporal en segundos (o milisegundos) a formato "días, horas, minutos y segundos". Ejemplo: el intervalo
Separador de miles: Permite indicar si se quiere mostrar el separador de miles, millones, etc, al visualizar valores numéricos (el separador de miles depende del idioma elegido en Tabulae: en idioma español se usa el ".", y en inglés la ",").
Ocultar la unidad: Retira la unidad (bien de la cabecera o en línea con el valor), en caso de que la medida tenga una asociada.
Unidad en línea con el valor: La unidad por defecto se sitúa en la cabecera de la medida. Con esta opción la unidad se sitúa en todas las celdas de la medida a continuación de cada valor.
Convertir en porcentaje: Multiplica por 100 la medida, de tal forma que por ejemplo ratios del tipo
A/B
pasan a ser porcentuales.Tipo de celda: Permite seleccionar uno de los 3 tipos de celda disponibles para valores numéricos. Son los siguientes:
Imagen - Ejemplo con los tipos de celda para medidas Celda numérica: Es el valor por defecto, muestra directamente el valor numérico de la medida.
Celda con comparador: Permite configurar rangos o niveles de valores con un estilo personalizado. Para añadir un nivel no hay más que hacer clic en el botón , y aparece un diálogo de configuración por cada nivel añadido. Para eliminarlo no hay más que hacer clic en el icono a la derecha de cada nivel.
Imagen - Ejemplo del niveles de comparación Un nivel se ha de entender como una regla de comportamiento: si se cumple la condición de pertenencia al intervalo definido se aplica el estilo, quedando la celda inalterada en caso contrario. Las reglas se van aplicando en el orden en el que se han definido (de arriba a abajo), por lo que en caso de haber solape de los intervalos el primer estilo es el que aplica. Las opciones de cada nivel son las siguientes:
Ocultar valor: Es una opción global que hará que el valor numérico no se vea en las celdas.
Valores mínimo y máximo: Son los valores que definen el rango o intervalo (no es necesario definir ambos) donde aplicar el estilo.
Icono: Selecciona el icono que se va a mostrar (en caso de querer mostrar uno). Se puede elegir haciendo clic sobre "N/A" y seleccionándolo de la ventana con los iconos disponibles o escribiendo su clase si se ya se conoce.
Color de icono: Se puede elegir el color del icono a partir del diálogo con colores que se despliega al hacer clic en el círculo de esta opción.
Color de fondo: Permite elegir el color de fondo de la celda a partir del diálogo con colores que se despliega al hacer clic en el círculo de esta opción.
Color de texto: Permite elegir el color del texto (el valor numérico) a partir del diálogo con colores que se despliega al hacer clic en el círculo de esta opción.
Celda con gráfico de barras: Permite mostrar una barra en la celda que indica el porcentaje de la medida con respecto al valor total. Se muestra además el valor porcentual (no la medida original) sobre la barra.
Imagen - Ejemplo de selección de colores para las barras Las opciones que se pueden seleccionar son:
Ocultar valor: Es una opción global que hará que el valor numérico no se vea en las celdas.
Color barra: Permite establecer el color de la barra en caso de valores positivos y negativos. Al hacer clic en el círculo de color correspondiente aparece el menú para la selección del color.
Color texto: Permite establecer el color del texto numérico en caso de valores positivos y negativos. Al hacer clic en el círculo de color correspondiente aparece el menú para la selección del color.
Configuración del "Layout"
En esta sección se permite modificar el orden inicial de los campos que se muestran en la tabla, teniendo siempre en cuenta que la primera columna, que incluye los campos de la jerarquía, será siempre fija. Para modificar el orden no hay más que hacer clic en el bloque que corresponde al campo deseado y arrastrarlo hasta la nueva posición.
![Diálogo de personalización del orden de los campos](images/tablas_drilldown_personalizar_layout_orden.png)
Configuración de Filtros
La pestaña de filtros permite seleccionar el comportamiento del widget respecto de los diferentes filtros que se aplican en una aplicación dashboard.
![Diálogo de personalización de la respuesta a los filtros](images/tabla-drilldown-personalizar-filtros.png)
En el diálogo se muestran, para cada filtro presente, la lista de dimensiones y medidas que se pueden filtrar. Para cada componente se puede elegir el comportamiento entre las siguientes opciones:
Use (Usar): Es la opción por defecto, implica que el filtro para esa dimensión/medida se usará con normalidad, esto es, que aplica al widget.
Ignore (Ignorar): Esta opción implica que el filtro para esa dimensión/medida se ignorará el filtro. Ésta opción es útil para mostrar valores globales fijos que no se vean afectados por el filtrado.
MappedTo (Mapear): Permite relacionar cada uno de los campos asociados al dataset que se invoca en el widget (dimensiones y medidas) con campos asociados a los datasets invocados en los filtros. De esta forma, aunque los datasets del widget y el filtro sean diferentes, se pueden relacionar y el widget puede responder al filtro. Ejemplo: si se tiene un dataset de ingresos y otro de gastos, se puede añadir un filtro que depende de la fecha (mensual, por ejemplo) de los ingresos, y mapear a ella la fecha de los gastos. De esta forma se pueden ver ambos conceptos respondiendo al mismo filtro.