## jpivot (de)

### Content

- chart
- chooseQuery
- clickable
- destroyQuery
- mondrianQuery
- navigator
- print
- scalarQuery
- selectproperties
- setParam
- table
- testQuery
- xmlaQuery

### chart

Body Content | JSP
Description | Erzeugt einen Chart. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
query | true | OlapModel | true | Name des Session Attributes, das die OLAP Daten (Query und Ergebnis) für dieses Tag enthält. Bei Reports, die vom SironDWH Builder erzeugt werden, wird die Query beim Start des Reports aus dem Repository geladen und unter dem Namen `query01` in der Session abgelegt. Alternativ kann die Query auch über das Tag `mondrian` erzeugt werden.
baseDisplayURL | false | String | true |
controllerURL | false | String | true |

### chooseQuery

Body Content | JSP
Description | Wählt eine query aus, die vorher mit einem queryName attribut erzeugt wurde.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
queryName | false | String | true | name der query die aktiviert werden soll

#### Example

    <jp:mondrianQuery id="query01" queryName="name1">
       SELECT ...
    </jp:mondrianQuery>
    <jp:mondrianQuery id="query01" queryName="name2">
       SELECT ...
    </jp:mondrianQuery>
    ...
    <jp:chooseQuery id="query01" queryName="name1"/>

### clickable

Body Content | EMPTY
Description | Alle Member einer Dimension oder Level werden mit einem anchor gerenderd, d.h. sie sind anklickbar. In der URL ist der Name des angeklickten Member enthalten. Kann nur innerhalb eines table Tags verwendet werden. Das Verhalten ist abhänig davon, ob das Attribut sessionParam gesetzt ist oder nicht. Wenn sessionParam gesetzt ist, wird der Parameterwert nicht in die URL codiert, sondern in den com.tonbeller.jpivot.param.SessionParamPool geschrieben, bevor auf die neue Seite verzweigt wird. Ist sessionParam nicht gesetzt, wird der unique name in die Url codiert und muss auf Empfängerseite ausgewertet werden. Das Tag muss innerhalb eines table tags oder eines query tags verwendet werden. Innerhalb eines table tags ist das clickable fuer alle queries vorhanden, innerhalb eines query-tags nur fuer die jeweilige query.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
urlPattern | false | String | true | DEPRECATED - sollte nicht in Verbindung mit session Parametern verwendet werden, da der Browser Back Button nicht wie erwartet funktioniert. Verwenden Sie statt dessen das `page` Attribute. Pattern aus dem die URL konstruiert wird. Ist das Attribut sessionParam NICHT gesetzt, wird {0} durch den unique name des members ersetzt. Wenn urlPattern mit "/" beginnt, ist die URL relativ zum Application context (d.h. der Kontext wird vorangestellt), ansonsten ist sie absolut.
page | false | String | true | Name der Ziel JSP, muss mit "/" beginnen. Wenn nicht angegeben, wird die gleiche Seite wieder angezeigt.
uniqueName | true | String | true | unique name einer Dimension, Hierarchy oder Level, deren Elemente angeklickt werden können.
menuLabel | false | String | true | Werden mehrere Clickables definiert, dann werden diese in einem Popup Menu zur Auswahl angeboten, dabei wird dieser Text im Menu Eintrag angezeigt.
sessionParam | false | String | true | Name des Parameters, der in den com.tonbeller.jpivot.param.SessionParamPool gestellt wird
propertyName | false | String | true | Wenn vorhanden wird der Wert der Elementeigenschaft als sqlValue des com.tonbeller.jpivot.param.Parameter genommen
propertyPrefix | false | String | true | Wenn vorhanden, wird fuer jedes Member Property ein SessionParam erzeugt. Der Name des SessionParam ist der Name des Member Property ohne das propertyPrefix. Wenn vorhanden, dürfen die Attribute sessionParam und propertyName nicht gesetzt sein.
providerClass | false | String | true | Wenn vorhanden wird eine Instanz dieser Klasse die SessionParam aus einem Member erzeugen. Die Klasse muss das Interface com.tonbeller.jpivot.table.navi.ClickableMember.ParameterProvider implementieren

#### Example

    <jp:mondrianQuery ...>
      select .. from Sales
      <jp:clickable urlPattern="/otherpage.jsp?param={0}" uniqueName="[Customers]"/>
      <jp:clickable page="/yetotherpage.jsp" uniqueName="[Products].[Category]" sessionParam="Category"/>
    </jp:mondrianQuery>

### destroyQuery

Body Content | JSP
Description | löscht alle queries mit dieser id

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird

#### Example

    <jp:destroyQuery id="query01"/>

### mondrianQuery

Body Content | JSP
Description | Erzeugt ein neues Session Attribut, das eine Mondrian Query enthält und anderen Komponenten wie Tabelle und Chart den Zugriff auf das Ergebnis sowie die Navigationsmöglichkeiten erlaubt. Anders als die übrigen Tags dieser Bibiliothek (und z.B. <jsp:useBean>) wird das Session Attribut in jedem Fall erzeugt, ein evtl vorhandenes Attribut wird dabei ersetzt. Es muss also z.B. durch Verwendung des JPivot `include` Tags oder durch JSTL <c:if> sichergestellt werden, dass die Query nur dann neu erzeugt wird, wenn dies auch gewünscht ist. Wenn der Application Server eine vorkonfigurierte JDBC DataSource bereitstellt, kann diese über das Attribut `dataSource` verwendet werden. Wenn nicht, können die JDBC Verbindungsparameter einzeln eingestellt werden.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
jdbcDriver | false | String | true | Java Klassenname des JDBC Treibers
jdbcUrl | false | String | true | Verbindungsparameter, diese sind Datenbankspezifisch
jdbcUser | false | String | true | user Kennung für Verbindung zur Datenbank
jdbcPassword | false | String | true | Passwort für Verbindung zur Datenbank
dataSource | false | String | true | JNDI Name einer vorkonfigurierten JDBC DataSource, e.g. jdbc/SironTDI. Kann nicht zusammen mit den anderen JDBC Attributen verwendet werden.
catalogUri | true | String | true | Pfad des Mondrian Schemas, relativ zum Application Context, z.B.`/WEB-INF/FoodMart.xml`
config | false | String | true | internal use only
role | false | String | true | Rolle aus dem Mondrian Schema
dynResolver | false | String | true | Klasse zum dynamischen Auflösen von Variablen im Mondrian Schema
dynLocale | false | String | true | Klasse zum dynamischen Auflösen von Variablen im Mondrian Schema
connectionPooling | false | String | true | "false" verhindert Mondrian Connection Pooling
dataSourceChangeListener | false | String | true | Klasse zum änderungen im DataSource zu ermitteln
queryName | false | String | true | Je queryName kann eine Query in diesem Session Attribut gehalten werden. Es wird jeweils die letzte Query gespeichert. Mit dem chooseQuery tag kann zwischen den queryName's bzw queries.
stackMode | false | boolean | true | Wenn dieses Feld auf "false" gesetzt wird, dann werden alle queryName Attribute gleich behandelt, unabhängig von der Reihenfolge, in der die Queries ausgeführt werden. Wenn dieses Feld auf "true" gesetzt wird, werden die verschiedenen queryNames in einem Stack gehalten. Beispiel: Eine query mit queryName `qn1` wird erzeugt und angezeigt Eine query mit queryName `qn2` wird erzeugt und angezeigt. Nun enthält der Stack `qn1` und `qn2`. `qn2` ist die sichtbare Query, d.h. eine Tabelle wird die Daten von `qn2` anzeigen. Wenn jetzt z.B. der Benutzer auf `qn1` zurückgeht, indem er eine Seite mit dem chooseQuery Tag aufruft, dann wird `qn2` beendet und der Speicher freigegeben. Dies passiert nur im Stack Mode, im Nicht-Stack-Mode würde `qn2` weiterhin erhalten bleiben und könnte über chooseQuery wiederum zur Anzeige gebracht werden. Im Nicht-Stack-Modus kann der Benutzer zwischen den verschiedenen Queries beliebig wechseln. Im Stack Modus kann er das nicht, wenn er zu einer "früheren" Query zurückgeht, werden alle danach gestarteten Queries gelöscht.

#### Example

    <jp:mondrianQuery id="query01"
      jdbcDriver="com.mysql.jdbc.Driver"
      jdbcUrl="jdbc:mysql://localhost/foodmart"
      catalogUri="/WEB-INF/test/FoodMart.xml">
    select
      {[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[Store Sales]} on columns,
      {[Product].[All Products]} ON rows
    from Sales
    where ([Time].[1997])
    </jp:mondrianQuery>

### navigator

Body Content | JSP
Description | Erzeugt eine Navigator Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
query | true | OlapModel | true | Name des Session Attributes, das die OLAP Daten (Query und Ergebnis) für dieses Tag enthält. Bei Reports, die vom SironDWH Builder erzeugt werden, wird die Query beim Start des Reports aus dem Repository geladen und unter dem Namen `query01` in der Session abgelegt. Alternativ kann die Query auch über das Tag `mondrian` erzeugt werden.
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.

#### Example

    <jp:navigator id="navi01" query="#{query01}" visible="false"/>
    <wcf:render ref="navi01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>

### print

Body Content | JSP
Description | Erzeugt einen Print. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird

### scalarQuery

Body Content | JSP
Description | Erzeugt ein neues Session Attribut, das eine OLAP Ergebnis enthält, das aus einer einzelnen Zelle besteht. Die Werte werden über die Attribute des Tags bereitgestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
value | true | String | true | EL expression evaluating to the value (number)
formattedValue | false | String | true | EL expression evaluating to the formatted value (String)
caption | false | String | true | EL expression evaluating to the caption (String)
queryName | false | String | true | see mondrianQuery
stackMode | false | boolean | true | see mondrianQuery

#### Example

    <jp:scalarQuery
      id="query01"
      value="#{some.bean.property}">
      formattedValue="#{some.bean.otherProperty}"
      caption="Some Caption" />

### selectproperties

Body Content | JSP
Description | Erzeugt eine Select Properties Komponente. Sie erlaubt einem, auszuwählen, welche Properties sichtbar sein sollen, und in welcher Reihenfolge. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
table | true | TableComponent | true | Name des Session Attributes, das die OLAP Daten (Query und Ergebnis) fÃ¼r dieses Tag enthÃ¤lt. Bei Reports, die vom SironDWH Builder erzeugt werden, wird die Query beim Start des Reports aus dem Repository geladen und unter dem Namen `query01` in der Session abgelegt. Alternativ kann die Query auch Ã¼ber das Tag `mondrian` erzeugt werden.
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.

#### Example

    <jp:selectproperties id="selectprop01" table="#{table01}" visible="false"/>
    <wcf:render ref="selectprop01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>

### setParam

Body Content | JSP
Description | Setzt einen MDX Parameter aus einem HTTP Parameter oder einem Session Parameter. Der Body wird nur dann evaluiert, wenn der HTTP Parameter vorhanden ist. Wird hier eine Mondrian Query hingeschrieben, dann wird diese immer dann neu initialisiert, wenn der HTTP Parameter vorhanden ist. Bei Verwendung von Session Parameter wird der body nie ausgeführt. Genau eines der Attribute httpParam oder sessionParam muss gesetzt sein.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
query | true | OlapModel | true | Name des Session Attributes, das die OLAP Daten (Query und Ergebnis) für dieses Tag enthält. Bei Reports, die vom SironDWH Builder erzeugt werden, wird die Query beim Start des Reports aus dem Repository geladen und unter dem Namen `query01` in der Session abgelegt. Alternativ kann die Query auch über das Tag `mondrian` erzeugt werden.
httpParam | false | String | true | Name des HTTP Parameters. Wenn der Parameter vorhanden ist, wird sein Wert in die MDX Query als Parameterwert eingetragen.
sessionParam | false | String | true | Name des Session Parameters
mdxParam | true | String | true | Name des zu setzenden MDX Parameters in der Query

#### Example

    <jp:mondrianQuery id="query01"...>
      SELECT ... Parameter("Param01", ...)
      WHERE ...
    </jp:mondrianQuery/>

    <jp:setParam query="query01" httpParam="param" mdxParam="Param01"/>
    or
    <jp:setParam query="query01" sessionParam="CUSTOMER" mdxParam="Param01"/>

### table

Body Content | JSP
Description | Erzeugt eine Tabellenkomponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
query | true | OlapModel | true | Name des Session Attributes, das die OLAP Daten (Query und Ergebnis) für dieses Tag enthält. Bei Reports, die vom SironDWH Builder erzeugt werden, wird die Query beim Start des Reports aus dem Repository geladen und unter dem Namen `query01` in der Session abgelegt. Alternativ kann die Query auch über das Tag `mondrian` erzeugt werden.
configXml | false | String | true | Pfad einer Konfigurationsdatei mit der kundenspezifischer Code eingebunden werden kann

#### Example

    <jp:table id="table01" query="#{query01}" visible="true"/>

### testQuery

Body Content | JSP
Description | Erzeugt Testdaten, die mit Tabelle / Chart usw angezeigt werden können

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
onRows | false | String | true | Namen der anzuzeigenden Dimensionen in den Zeilen, durch Leerzeichen getrennt. Mögliche Werte: Measures, Region, Products, Advertising, Material
onColumns | false | String | true | Namen der anzuzeigenden Dimensionen in den Spalten, durch Leerzeichen getrennt. Mögliche Werte: Measures, Region, Products, Advertising, Material

#### Example

    <jp:testQuery id="query01" onColumns="Measures" onRows="Products Region">
      for some reason, the body must not be empty
    </jp:testQuery>

### xmlaQuery

Body Content | JSP
Description | Erzeugt ein neues Session Attribut, das eine XMLA Query enthält. Es erlaubt anderen Komponenten wie Tabelle und Navigator das Ergebnis darzustellen und in dem Cube zu navigieren. Anders als die übrigen Tags dieser Bibiliothek (und z.B. <jsp:useBean>) wird das Session Attribut in jedem Fall erzeugt, ein evtl. vorhandenes Attribut wird dabei ersetzt. Es muss also z.B. durch Verwendung des JPivot `include` Tags oder durch JSTL <c:if> sichergestellt werden, dass die Query nur dann neu erzeugt wird, wenn dies auch gewünscht ist.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
uri | true | String | true | Die URI des XMLA Servers
dataSource | false | String | true | DataSourceInfo Spezifikation, etwa "Provider=MSOLAP;Data Source=local"
catalog | true | String | true | Catalog Spezification, etwa "Foodmart 2000"
config | false | String | true | Pfad zu einer Konfigurationsdatei, relativ zum Application Context, über die Kundenspezifischer Code eingebunden werden kann

#### Example

    <jp:xmlaQuery id="query01"
      uri="http://MYSERVER/XML4A/msxisapi.dll"
      catalog="Foodmart 2000">
    select
      {[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[Store Sales]} on columns,
      {[Product].[All Products]} ON rows
    from Sales
    where ([Time].[1997])
    </jp:xmlaQuery>