Przykład tabeli przestawnej JPivot połączonej z serwerem Open Source Mondrian OLAP
W tej lekcji tutoriala stworzymy dynamiczną tabelę przestawną z przykładowymi danymi z poprzednich lekcji tutoriala, która będzie połączona z serwerem Mondrian OLAP.
Do stworzenia takiego crosstaba wykorzystane zostaną tagi JSP z bibliotek zewnętrznych jpivot (JPivot i WCF). Do ukończenia tej lekcji niezbędna będzie podstawowa wiedza z zakresu Java i JSP w rozwiązaniach Webowych.
Biblioteki tagów wraz z dokumentacją Jpivot i WCF można znaleźć tutaj:
Tabela przestawna JPivot z niniejszego tutoriala zostanie wyświetlona przez stronę JSP o nazwie gg_crosstab1.jsp.
W celu stworzenia strony JSP z jpivot należy :
Plik etltools.jsp file ma następującą zawartość:
<%@ page session="true" contentType="text/html; charset=ISO-8859-1" %> <%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <jp:mondrianQuery id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:dwuser/dwpwd1@127.0.0.1:1521:xe" catalogUri="/WEB-INF/queries/EtlTools.xml"> select {[Measures].[Total Turnover], [Measures].[Total Weight]} ON columns, {[TIME].[All Time]} ON rows from EtlTools </jp:mondrianQuery> <c:set var="title01" scope="session">Testowe zapytanie używające Mondrian OLAP</c:set>
Najistotniejszą częścią pliku konfiguracyjnego jest sekcja (tag) jp:mondrianQuery, który definiuje dostęp danych źródłowych Mondrian OLAP. Zawiera polecenia MDX, które definiują dane, które będą pobrane z Mondrian. W naszym przykładzie prosta analiza będzie się składała z wymiaru czasu (time) oraz dwóch miar: obrót (turnover) i waga (weight).
Warto zwrócić uwagę na fakt, że plik ten odwołuje się do pliku konfiguracyjnego Mondrian, o nazwie EtlTools.xml, którego tworzenie zostało szeroko omówione w lekcji tutoriala Pentaho Cube Designer.
- W pierwszych liniach pliku gg_crosstab1.jsp umieszczone zostały tagi jsp dla wcf, jpivot i bibliotek standardowych java. Poniżej standardowy nagłówek html oraz definicja 'body', czyli głównej części dokumentu.
- Poniższa linia zawiera link do pliku definicji tabeli przestawnej css. Wygląd graficzny tabeli przestawnej JPivot może być dostosowany poprzez edycję pliku mdxtable.css.
<link rel="stylesheet" type="text/css" href="jpivot/table/mdxtable.css">
- W poniższych liniach zawarta jest definicja zapytania Mondrian (Mondrian Query definition) i sprawdzenie czy definicja ta została pomyślnie załadowana. Jeżeli nie, to przeglądarka zostanie przekierowana do strony głównej index.jsp.
<%-- query definition --%> <wcf:include id="include01" httpParam="query" prefix="/WEB-INF/queries/" suffix=".jsp"/> <c:if test="${query01 == null}"> <jsp:forward page="/index.jsp"/> </c:if>
- Tabela przestawna zostaje zainicjowana następującym poleceniem (po wydaniu poniższego polecenia zostaje ona załadowana do pamięci, a nie widoczna na ekranie, co następuje dopiero po wykonaniu polecenia render):
<jp:table id="table01" query="#{query01}"/>
- Aby wyświetlić crosstaba na ekranie przeglądarki należy wysłać następujące polecenie:
<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl" xslCache="true"/>

<filter-mapping> <filter-name>JPivotController</filter-name> <url-pattern>/gg_crosstab1.jsp</url-pattern> </filter-mapping>

W nadchodzącej lekcji tutoriala Pentaho JPivot zajmiemy się sformatowaniem liczb w kostce OLAP i dodaniem opcji takich jak sortowanie, edycja zapytania MDX, drążenie danych, wykresy, eksport do różnych formatów i innych użytecznych funkcji.
Nawigator JPivot | Edytor MDX |