Introduce
JPivot
是一套基于
Mondrian
的
OLAP
前端展现工具,它提供了一套标签库来解决的
OLAP
的展现层问题。
在一个
JSP
页面当中,如果要使用
JPivot
标签库,除了要配置相关的配置文件外,我们需要在
JSP
头的位置声明对
JPivot
标签库的引用,引用方法如下:
<%@
taglib
uri
=
"http://www.tonbeller.com/jpivot"
prefix
=
"jp"
%>
|
JPivot
标签库包含以下几个标签:
l
chart
l
chooseQuery
l
clickable
l
destroyQuery
l
mondrianQuery
l
navitator
l
print
l
scalarQuery
l
setParam
l
table
l
testQuery
l
xmlaQuery
接下来我们将详细介绍这些标签的具体用法及相关参数的含义。
chart
创建一个图表组件,这个图表组件的标签不能直接产生可见输出,它必须通过
WCF
的渲染标签才行。
chart
标签的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
visible
|
否
|
boolean
|
是
|
用来设置该组件是否可见,当该属性为
false
时
WCF
标签半角不显示该组件。
|
role
|
否
|
String
|
是
|
Role
的名称,如:
role=”tomcat”
就允许当前用户角色为
tomcat
的访问该控件,
role=”!tomcat”
则就允许除角色为
tomcat
以外的所有的用户访问。
|
query
|
是
|
OlapModel
|
是
|
一个
mondrianQuery
标签的
ID
值
|
baseDisplayURL
|
否
|
String
|
是
|
显示图表的链接,链接的后面还要添加参数“
?=filename=[
临时图表文件的名称
]
”
|
controllerURL
|
否
|
String
|
是
|
链接到
JPivot Controller
的
URL
,该属性在一些复杂环境下比如
Portal
之类就很有用。
|
chooseQuery
从前面创建的若干个查询当中选择一个合适的查询(通过查询名称进行选择),例如:
<jp:mondrianQuery id="query01" queryName="name1">
SELECT ...
</jp:mondrianQuery>
<jp:mondrianQuery id="query01" queryName="name2">
SELECT ...
</jp:mondrianQuery>
...
<jp:chooseQuery id="query01" queryName="name1"/>
|
它的属性比较简单,只有
id
和
queryName
两个,而且比较容易理解。
clickable
该标签的作用是给一个
dimension
或一个
level
里的所有的
members
加上超链,使得它们变的可以进行点击操作。生成的
URL
中包含这个
member
的唯一名称,这个标签必须要在一个
table
或一个
query
的标签里嵌套使用。
这个动作还依赖于该标签的
sessionParam
属性,如果该属性存在,那么参数值将在页面显示之前写到
com.tonbeller.jpivot.param.SessionParamPool
当中,如果不存在该属性,参数将会被编码到超链接当中。
例如:
<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>
|
该标签的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
urlPattern
|
否
|
String
|
是
|
该属性已过时,使用
page
属性替代它。
|
page
|
否
|
String
|
是
|
目标页面的名称,该属性的值必须要以“
/
”开始,如果不设置,那么会采用当前页面的名称。
|
uniqueName
|
否
|
String
|
是
|
一个
dimension
或
hierarchy
或
level
的唯一名称,用来标识哪个
member
将可以点击。
|
menuLabel
|
否
|
String
|
是
|
如果多次定义
clickable
,那么它将通过一个右键来进行显示,这里的值就是右键菜单的名称。
|
sessionParam
|
否
|
String
|
是
|
参数名称,它将会被回写到
com.tonbeller.jpivot.param.SessionParamPool
当中。
|
propertyName
|
否
|
String
|
是
|
该属性如果存在,该
member
属性的值将会被带到
com.tonbeller.jpivot.param.Parameter
的
sqlValue
的属性当中。
|
propertyPrefix
|
否
|
String
|
是
|
如果存在该属性,多个
SessionParam
将会被创建,每一个
member
的名字的开始部分将采用该属性的值。
|
providerClass
|
否
|
String
|
是
|
如果存在该属性,这个类的实例将会从当前的
member
中获取
SessionParam
对象的实例,这里的类必须实现
com.tonbeller.jpivot.table.navi.ClickableMember.ParameterProvider
接口。
|
destroyQuery
该标签的主要作用是销毁所有的查询,它的用法如下:
<jp:destroyQuery id="query01"/>
|
它只有一个
ID
属性。
mondrianQuery
该标签的主要作用是让
mondrian
执行指定的查询,该标签需要指定一个
JDBC
的
datasource
或单独指定
JDBC
连接的各个属性从而可以让
mondrian
连接到指定的数据库。
它的用法如下:
<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>
|
它的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
jdbcDriver
|
否
|
String
|
是
|
要连接到目标数据库的驱动类名
|
jdbcUrl
|
否
|
String
|
是
|
目标数据库的
URL
|
jdbcUser
|
否
|
String
|
是
|
登录数据库的用户名
|
jdbcPassword
|
否
|
String
|
是
|
登录数据库的密码
|
dataSource
|
否
|
String
|
是
|
可以连接到数据库的
JNDI
名称,如
jdbc/SampleDB
,当使用它时另外四个单独连接数据库的属性不可以再用。
|
catalogUri
|
是
|
String
|
是
|
Mondrian
Schema
文件所在的路径,指定路径时需要从
web
应用的根开始,如
/WEB-INF/FoodMart.xml
。
|
role
|
否
|
String
|
是
|
指定角色,该角色的值来自
Mondrian
Schema
里定义的角色。
|
dynResolver
|
否
|
String
|
是
|
指定一个用来解析
Mondrian
Schema
里定义的动态变量的解析类。
|
connectionPooling
|
否
|
String
|
是
|
当该值为
false
时,将从连接池里阻止
Mondrian
|
dynLocale
|
否
|
String
|
是
|
设置动态解析
Mondrian
Schema
里的
Local
|
dataSourceChangeListener
|
否
|
String
|
是
|
指定一个类用来检测
datasource
的变化。
|
queryName
|
否
|
String
|
是
|
这个属性允许保留多个查询,对于每一个查询,最后一个查询将会被存储下来,可以使用
chooseQuery
标签在查询间进行切换。
|
stackMode
|
否
|
boolean
|
是
|
如果设置为
false
,那么所有的查询将同时被处理;如果设置为
true
,那么将保持其原有的顺序,例如:
查询名称为
qn1
的创建后,标签就马上将其显示出来
;
接下来创建
qn2
,现在
stack
里有
qn1
和
qn2
,
qn2
也将被显示出来。
|
navigator
创建一个导航组件,这个组件不会直接输出,它必须通过
WCF
的标签来
render
输出。
示例用法:
<jp:navigator id="navi01" query="#{query01}" visible="false"/>
<wcf:render ref="navi01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>
|
该标签的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
query
|
是
|
OlapModel
|
是
|
指定一个
mondrianQuery
标签的名称
|
visible
|
否
|
boolean
|
是
|
设置该组件是否可见,如果设置为
false
那么
WCF
的
render
标签将不会
render
该组件。
|
role
|
否
|
String
|
是
|
角色的名称,可以加前缀“!”,表示“除
…
角色之外”都可以访问该组件,否则就是只有该角色才能访问该组件。
|
print
创建一个打印控件,该控件不能直接输出,你必须创建
WCF
form
来调用打印的
servlet
来生成
XLS/PDF
文件。
该标签只有一个
ID
属性。
scalarQuery
创建一个包含由单个单元格的组成的
OLAP
结果的会话属性,它的值由标签的属性提供。
示例用法:
<jp:scalarQuery
id="query01"
value="#{some.bean.property}">
formattedValue="#{some.bean.otherProperty}"
caption="Some Caption" />
|
它的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
value
|
是
|
String
|
是
|
是一个
EL
的表达式,通过
EL
表达式来计算值,这里是一个数字。
|
formattedValue
|
否
|
String
|
是
|
用一个
EL
表达式来计算格式化后的值,是一个字符串
|
caption
|
否
|
String
|
是
|
用一个
EL
表达式来生成
caption
的值,这里是一个字符串
|
queryName
|
否
|
String
|
是
|
请参考
mondrianQuery
标签
|
stackMode
|
否
|
boolean
|
是
|
请参考
mondrianQuery
标签
|
selectProperties
创建一个选择属性的组件,该组件不会直接输出,必须要与
WCF
的
render
标签结合。
示例用法:
<jp:selectproperties id="selectprop01" table="#{table01}" visible="false"/>
<wcf:render ref="selectprop01" xslUri="/WEB-INF/jpivot/navi/navigator.xsl" xslCache="true"/>
|
它的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
table
|
是
|
TableComponent
|
是
|
该属性用来指定一个表格组件。
|
visible
|
否
|
boolean
|
是
|
设置该组件是否可见,如果设置为
false
那么
WCF
组件将不会显示该组件。
|
role
|
否
|
String
|
是
|
指定角色,同样可以使用“!”
|
setParam
通过
get
或
post
或
session
里的值为
MDX
查询设置查询参数。示例用法:
<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"/>
|
它的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
query
|
是
|
OlapModel
|
是
|
指定一个
mondrianQuery
标签的名称
|
httpParam
|
否
|
String
|
是
|
http
参数的名称,如果存在该属性,那么它的值将会被告解析并设置到
mdx
查询的
parameter
当中
|
sessionParam
|
否
|
String
|
是
|
Session
的参数名称
|
mdxParam
|
是
|
String
|
是
|
MDX
的
parameter
的名称
|
table
创建一个
pivot
的表格组件,该组件要借助于
WCF
的
render
标签输出。
示例用法:
<jp:table id="table01" query="#{query01}" visible="true"/>
|
该标签的主要属性如下:
属性名
|
必须
|
数据类型
|
是否能动态计算指定
|
描述
|
id
|
是
|
String
|
是
|
标签的
ID
|
visible
|
否
|
boolean
|
是
|
设置组件是否可见,如果为
false
那么
WCF
的标签将不会将其
render
。
|
role
|
否
|
String
|
是
|
可访问该组件的角度,支持“!”用法
|
query
|
是
|
OlapModel
|
是
|
指定一个
mondrianQuery
标签的名称
|
|
分享到:
相关推荐
【JPivot标签库详解】 JPivot是一款基于Mondrian的在线分析处理(OLAP)前端展示工具,专门解决OLAP的展示层问题。它提供了一系列的JSP标签,使得开发者能够在网页中方便地构建和控制OLAP应用。下面将详细阐述各个...
4. JPivot标签库使用详解 4.1. Introduce JPivot 是一套基于 Mondrian 的 OLAP 前端展现工具,它提供了一套标签库来解决的 OLAP 的展现层问题。 在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的...
**1、JPivot标签使用详解** 这部分内容可能详细介绍了JPivot的各种组件和标签,包括表格、图表、下拉列表、过滤器等,这些都是构建交互式报表的关键元素。开发者可能会学习到如何配置和自定义这些标签,以适应特定的...
在本主题中,我们将深入探讨如何在Jpivot这个开源工具中使用MDX动态参数进行跳转,并利用其`clickable`标签来实现交互式功能。 Jpivot是一个基于Java的开源库,它提供了灵活的数据透视表和图表功能,支持用户通过...
JPivot是一个JSP 自定制的标签库,可以绘制一个OLAP表格和图表。用户可以执行典型的OLAP导航,如下钻,切片和方块。它使用Mondrian 作为其OLAP服务器。它使用WCF (Web Component Framework) ,基于XML/XSLT来渲染Web...
3. **创建Web页面**:利用jpivot提供的JSP标签或者Servlet API,在Web应用中创建数据透视表的界面。 4. **用户交互**:用户可以通过Web界面交互式地创建和调整透视表,进行数据分析。 5. **性能优化**:由于OLAP...
#### 四、Mondrian Schema详解 **Schema** 定义了一个多维数据库,包含了逻辑模型,以便编写MDX语言的查询语句。它包括以下概念: - **Cube**:一组维度和度量的集合,共同指向同一个事实表。 - 属性: - `name`...
通过学习和使用Jpivot 1.8.0,无论是数据分析师还是开发者,都能够更好地理解和利用多维数据,为决策提供有力支持。对于企业而言,它提供了一种低成本、高效的数据分析解决方案,尤其适合那些需要快速响应市场变化、...
JPivot是一款开源的Java库,主要用于在Web应用中创建交互式多维数据分析界面。它结合了 Mondrian OLAP(在线分析处理)服务器,为用户提供了一种高效、灵活的方式来探索和理解大量复杂数据。本资料收集汇总主要围绕...
1. **Jpivot JAR文件**:这是Jpivot的核心库,包含了所有必要的类和资源,用于运行和构建Jpivot应用。 2. **示例数据**:可能提供一些预设的数据集或XML文件,用于演示Jpivot的功能。 3. **配置文件**:可能包含...
jpivot1.8帮助文档,为方便大家携带特转换为chm格式的
《Jpivot 汇总与 Mondrian Schema 详解》 Jpivot 是一款强大的开源工具,它允许用户在Web环境中以灵活的方式浏览和分析多维数据。集成Jpivot到你的应用程序中,首先需要将`jpivot.war`文件解压,并将 `/wcf/`, `/...
如何将Mondrian+jpivot用于web项目
JPivot使用WCF(Web Component Framework)并依赖于JSP标签库,允许用户以自定义JSP标签的形式轻松操作多维数据。 1.1.2 维度层(Dimensional Layer)负责处理MDX查询,包括解析、验证和执行。查询通过计算坐标轴和...
解压文件后: 1.jpivot-1.8.0.zip:内有jpivot.war,mondrian-src.zip...2.wcf-1.7.0.zip,与jpivot-1.8匹配的wcf库,内有wcf.war,wcf-src.zip 可以发布war应用程序,并结合src源代码,研究下mondrian+jpivot实现框架
它使用XML/XSLT来渲染OLAP报表,支持自定义JSP标签库,能够轻松将多维数据展示给最终用户。JPivot基于WCF(Web Component Framework),通过XML/XSLT配置生成HTML,适用于复杂的OLAP报表展示。 总结 Mondrian作为...
Pentaho平台JPivot插件 ... 这些更改位于jpivot-src-mods中,基于2013年6月20日从JPivot Sourceforge存储库获取的源代码: ://jpivot.cvs.sourceforge.net/viewvc/jpivot/ 由于平台升级到了最新版本