Open Business Intelligence

La red del Business Intelligence

INTRODUCCION:
Por defecto cuando se crea un nuevo análisis interactivo todas los valores de la grilla presentan el mismo formato.
Una característica muy buena que presenta JPivot es la posibilidad de crear nuevos medidas de manera dinámica y agregarle formatos de acuerdo a su propio valor.

OBJETIVO:
Crear una nueva medida de forma dinámica, analizar su valor y de acuerdo a este, asignarle diferentes formatos, es decir:
  • valor < 1000   color de fondo rojo y flecha hacia abajo.
  • 1000 <= valor <= 3000   color de fondo amarillo.
  • valor > 3000   color de fondo verde y flecha hacia arriba.

PASOS:
1)
Para la aplicación práctica de este tutorial, se utilizará el análisis interactivo del [Tutorial 01]...

2)
Ejecutamos el análisis interactivo y presionamos la opción MDX de la barra de iconos:


Veremos que el código MDX del análisis interactivo es:

select NON EMPTY {[Measures].[Quantity]} ON COLUMNS,
  NON EMPTY {[Markets].[All Markets].[APAC].[Australia], [Markets].[All Markets].[APAC].[New Zealand], [Markets].[All Markets].[APAC].[Singapore], [Markets].[All Markets].[Japan].[Hong Kong], [Markets].[All Markets].[Japan].[Japan], [Markets].[All Markets].[Japan].[Philippines], [Markets].[All Markets].[Japan].[Singapore], [Markets].[All Markets].[NA].[Canada], [Markets].[All Markets].[NA].[USA]} ON ROWS
from [SteelWheelsSales]

3) Lo que se hará a continuación será confeccionar el código para llevar adelante nuestro objetivo.

3.1) Creación de una nueva medida basada en [Measures].[Quantity]:

with member [Measures].[Cantidad] as '[Measures].[Quantity]',

3.2) Agregarle formato condicional:

FORMAT_STRING = IIf(([Measures].[Cantidad] < 1000.0), "|###,00|style='red'|arrow='down'", IIf(([Measures].[Cantidad] < 3000.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"))

NOTA1: como se puede observar se utilizan IIF para analizar los valores de la nueva medida.
NOTA2: "|###,00|style='red'|arrow='down'" corresponde a:
  • ###,00   formato de salida.
  • style='red'   color de fondo.
  • arrow='down'   icono/flecha.

4)
Agregar este código al inicio de la consulta MDX y reemplazar la medida [Measures].[Quantity] utilizada en el análisis interactivo por la nueva medida, es decir por [Measures].[Cantidad]:

with member [Measures].[Cantidad] as '[Measures].[Quantity]', FORMAT_STRING = IIf(([Measures].[Cantidad] < 1000.0), "|###,00|style='red'|arrow='down'", IIf(([Measures].[Cantidad] < 3000.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"))
select NON EMPTY {[Measures].[Cantidad]} ON COLUMNS,
  NON EMPTY {[Markets].[All Markets].[APAC].[Australia], [Markets].[All Markets].[APAC].[New Zealand], [Markets].[All Markets].[APAC].[Singapore], [Markets].[All Markets].[Japan].[Hong Kong], [Markets].[All Markets].[Japan].[Japan], [Markets].[All Markets].[Japan].[Philippines], [Markets].[All Markets].[Japan].[Singapore], [Markets].[All Markets].[NA].[Canada], [Markets].[All Markets].[NA].[USA]} ON ROWS
from [SteelWheelsSales]

5) Presionar el botón "Aplicar", cerrar el editor MDX y guardar el análisis interactivo. Obtendremos algo como:



Para leer más sobre MDX, seguir este link...

Adjunto el análisis interactivo de ejemplo, el mismo esta realizado con el schema SteelWheels y el cubo SteelWheelsSales, que vienen predefinidos en Pentaho 3.5.

Espero les sea útil.
Salud!

Etiquetas: colores, eglubi, jpivot, mdx, pentaho

Visitas: 1582

Archivos adjuntos

Respuestas a esta discusión

Si, está mal definido el cubo o estás definiendo mal el promedio, te recomiendo repasar la definición de tu cubo y leer la documentación de las funciones MDX

al parecer es algo con esta parte de la consulta

with member [Measures].[prom] as Avg([Año Académico.Años].Children, [Measures].[Egresados])

en la iteracion pierde el valor no se por que razon

Estimados, puede ponerse mas de un "with member", para cambiar los colores en mas de una métrica????

Puedes definir más de un miembro, de hecho los que quieras, por ejemplo:

with member [Measures].[Gross Sales] as 'Sum(YTD(),[Measures].[Unit Sales])'
member [Measures].[Accumulated Sales] as 'Sum(YTD(),[Measures].[Store Sales])'
select
{[Measures].[Store Sales],[Measures].[Gross Sales],[Measures].[Accumulated Sales]} on columns,
{Descendants([Time].[1997],[Time].[Month])} on rows
from Sales

estimado mariano, muchas gracias por tu oportuna respuesta. Saludos desde Ecuador.

Estimado Mariano, una consulta, como puede mostrar los totales por columnas y/o por filas en jpivot?. Gracias de antemano.

Mariano García Mattío dijo:

Puedes definir más de un miembro, de hecho los que quieras, por ejemplo:

with member [Measures].[Gross Sales] as 'Sum(YTD(),[Measures].[Unit Sales])'
member [Measures].[Accumulated Sales] as 'Sum(YTD(),[Measures].[Store Sales])'
select
{[Measures].[Store Sales],[Measures].[Gross Sales],[Measures].[Accumulated Sales]} on columns,
{Descendants([Time].[1997],[Time].[Month])} on rows
from Sales

Buen dia

tengo una duda que espero puedan ayudarme necesito colorear mas de una columna

para colorear mas de una columna es necesario poner de nuevo poner todo la sentencia  algo asi ? o esto no esposible ?

with member [Measures].[%DeNegado] as '[Measures].[% De Negado]', FORMAT_STRING = IIf(([Measures].[%DeNegado] >= 20.0), "|###,00|style='red'|arrow='down'", IIf(([Measures].[%DeNegado] >= 10.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"))

with member [Measures].[%DeSurtido] as '[Measures].[% De Negado]', FORMAT_STRING = IIf(([Measures].[%DeNegado] <= 20.0), "|###,00|style='red'|arrow='down'", IIf(([Measures].[%DeSurtido] <= 10.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"))

perdon me repondere solo si es como lo puse pero sin el whit en la segunda columna saludos

with member [Measures].[%DeNegado] as '[Measures].[% De Negado]',
FORMAT_STRING =
IIf(([Measures].[%DeNegado] >= 20.0), "|###,00|style='red'|arrow='down'",
IIf(([Measures].[%DeNegado] >= 10.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"
))

member [Measures].[%DeSurtido] as '[Measures].[% De Surtido]',
FORMAT_STRING =
IIf(([Measures].[%DeSurtido] <= 80.0), "|###,00|style='red'|arrow='down'",
IIf(([Measures].[%DeSurtido] <= 90.0), "|###,00|style='yellow'|arrow='none'", "|###,00|style='green'|arrow='up'"
))

Una pregunta, una vez coloreada una grilla se puede filtar para que solo muestre los de un color, es posible esto ?

No se puede

muchas gracias, me auto respondo, busque de que manera podria filrar una vez pintada la grilla con los parametros y colores que  tengo

y directamente no se puede filtrar pero atravez de las mismas sentencias que uno pone en la programacion mdx si lo pude realizar con la palabra reservada Filter 

ejemplo

sin filtro

con el codigo

 NON EMPTY

Filter([Comprador].[All Compradors].Children, ([Measures].[Valor Existencia] > [Measures].[ValorExistenciaMax])) ON ROWS

saludos espero le ayude a alguien mas este ejemplo gracias

Gracias por compartir.

Saludos

RSS

Distintivo

Cargando…

© 2019   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio