TodoBI - Business Intelligence, Big Data, ML y AI TodoBI - Business Intelligence, Big Data, ML y AI

Crosstabs en Pentaho Reporting

Nuestro compañero Juan Jose Ortilles, experto en pegarse con Eclipse Birt y Pentaho Reporting nos cuenta como crear Crosstabs con Pentaho Reporting, siguiendo las notas explicadas en este post y ver que, efectivamente funciona.
Una de las funcionalidades que hace que desestimemos Pentaho Reporting en muchas ocasiones en favor de Eclipse Birt son las tablas cruzadas.
Consideraciones previas:
Es una funcionalidad experimental por lo que hay que hacerlo todo por atributos olvidate de arrastrar y desplazar. Olvidate del layout.
Para abilitar la funcionalidad hay que realizar la siguiente combinación de teclas CTRL-ALT-O (parece un huevo de pascua). Te saldrá una advertencia de que has reiniciado el editor para ver las caracteristicas ocultas. Tiembla y dile que “vale”.
PRD1
Todavía no verás nada….. Espera…. Ahora vamos a poner la página apaisada….
FILE ==> PAGE SETUP ==> HORIZONTAL Y A-4
Todavía no verás nada…. Espera…. Vamos a ponerle la consulta, para ello vamos a tirar de nuestro querido SampleData:
select distinct
PRODUCTLINE,
T.MONTH_NAME,
sum(TOTALPRICE) as TOTALPRICE,
sum(QUANTITYORDERED) as QUANTITYORDERED
from PRODUCTS P inner join ORDERFACT O on (P.PRODUCTCODE = O.PRODUCTCODE)
inner join DIM_TIME T on (O.ORDERDATE = T.TIME_ID)
where T.YEAR_ID = 2004
group by PRODUCTLINE,
MONTH_NAME
order by PRODUCTLINE,
T.MONTH_ID
;
Si te fijas, ahora ademas de añadir un grupo puedes añadir un grupo de crosstab (en las pruebas que he hecho a veces tarda un poco en aparecer)
PRD2
Y… Tachan! Aquí tenemos nuestra nueva banda
PRD3
Queremos hacer una crosstab de los productline por los meses
Por lo que vamos a establecer las columnas:
crosstab-column-group-body –> crosstab-column-group y en la propiedad del grupo ponemosMONTH_NAME.
PRD4
Lo mismo para las filas:
crosstab-row-group-body –> crosstab-row-group, y en la propiedad del grupo ponemos PRODUCTLINE.
PRD5
Ya lo tenemos casi todo hecho….
Vamos a poner las cabeceras de los gruops… Eso se hace en añadiendo la elemento correspondiente en cada cabecera:
PRD6
y estableciendo su valor:
PRD7
Lo mismo para los PRODUCTLINE solo que se establecen como cabecera de filas.
Vamos ahora a por el contenido de la tabla. Mas de lo mismo:
Vamos a al detalle de la tabla y añadimos una etiqueta numérica ya que vamos a poner números y la establecemos como TOTALPRICE:
Y…. ya podemos ejecutar....
PRD9
Tachaaaan!!!!!
Bueno, vale, todavía falta pulirlo un poco, como poner los ecabezados en en negrita y reubicar las etiquetas de los encabezados le linea. Peeeero…. Ya tenemos nuestra primera Crosstab.

Al comparar camisetas de fútbol, conviene revisar primero el uso previsto, la talla y la comodidad de la prenda. Dentro de esa comparación, camiseta de futbol del Real Madrid mantiene la consulta centrada en la prenda indicada por el propio enlace. La decisión final resulta más clara cuando se comparan datos concretos y no solo la apariencia general.