`
华山剑
  • 浏览: 20536 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
  • lyyf: 马马虎虎明白了点。但是,接口,搞成私有的,别的类能使用吗?
    线程安全

mondrian + jpivot 开发笔记

阅读更多

1. 按条件着色记录

 

in schema xml file:

<CalculatedMember name="useRatio" dimension="Measures">
      <Formula>
        <![CDATA[[Measures].useAmount * 100 / [Measures].[ToltalAmount]]]>
      </Formula>
      <CalculatedMemberProperty name="FORMAT_STRING" 
expression="Iif([Measures].[useRatio] &lt; 50.00, '|#,##0.00|style=red', '|#,##0.00|style=green')"/>
</CalculatedMember>
 

2. 钻取数据格式化

jpivot钻取出的数字默认精确到小数点后两位,修改wcf.jar中

com.tonbeller.wfc.format.config.xml
删除double和nandouble的定义

 

3. 展现同一张表中父子关系的记录

 

in schema xml file:

 <Dimension foreignKey="EMPLOYEE_NO" highCardinality="false" name="EMPLOYEE">
     	<Hierarchy hasAll="true" allMemberName="所有机构" primaryKey="NO">
     	        <Table name="ORG_TABLE"/>
     		<Level name="EMPLOYEE" column="NO" nameColumn="NAME"
 parentColumn="LEADER" nullParentValue="null" type="String" uniqueMembers="true">
     			<Closure parentColumn="LEADER_NO" childColumn="EMPLOYEE_NO">
          			<Table name="EMPLOYEE_CLOSURE"/>
       			</Closure>
     		</Level>
     	</Hierarchy>
    </Dimension>
 

关键的几个方面:

(1) <Level>中 parentColumn 和 nullParentValue 属性的设置,如果是父子关系的连接,属性uniqueMembers值必须为true。

 

(2) 必须在数据库中创建响应的Closure Table,并在<Level>中设置<Closure>加以关联,否则在有的情况下该列展开时会报错(mondrian实现父子关系级联查询的机制使然):

 

javax.el.ELException: Error reading 'result' on type com.tonbeller.jpivot.tags.OlapModelProxy

 

(3) 对于这种在同一张表中,记录之间有父子关系的情况,用上面这种parent-child级联 + 参考closure table的方式在大多数情况下并不是很好的解决方案,这种方案最大的弊端在于需要额外地维护一张与事实表相关的closure table,如果事实表中的记录是不变的尚可,但大多数情况下事实表的记录是会被改变的,这样就需要在closure表中随之维护成员以及成员之间的关系,这不但需要额外的开销,而且有时会很麻烦。更好的一种解决方案是使用view,当然mondrian本身并不支持view,需要所使用的数据库本身可以支持view,当今主流的关系数据库应该都是支持的,如Oracle, MySQL, SQLServer等,下面展现了一个例子

 

in schema xml file:

<!-- 单位维度,关联事实表中的UNIT_NO列 -->
<Dimension foreignKey="UNIT_NO" highCardinality="false" name="UNIT"> 
     	<Hierarchy hasAll="true" allMemberName="所有单位"
                         primaryKey="NO" primaryKeyTable="VIEW_UNIT_TWO">
     		<Join leftKey="UPPER_UNIT" rightKey="NO">
                         <!-- 关联二级分支单位的VIEW -->
     			<Table name="VIEW_UNIT_TWO"/>

                        <!-- 关联一级分支单位的VIEW -->
     			<Table name="VIEW_UNIT_ONE"/>
     		</Join>

     		<Level name="一级分支单位" table="VIEW_UNIT_ONE" column="NO" 
nameColumn="NAME" type="String" uniqueMembers="true" hideMemberIf="Never"/>

                <Level name="二级分支单位" table="VIEW_UNIT_TWO" column="NO" 
nameColumn="NAME" type="String" uniqueMembers="false" hideMemberIf="Never"/>

           </Hierarchy>
    </Dimension>
分享到:
评论

相关推荐

    如何将Mondrian+jpivot用于web项目

    如何将Mondrian+jpivot用于web项目

    mondrian+jpviot完整工程源码及mysql数据

    总的来说,这个压缩包提供了一个完整的mondrian+jpviot开发和测试环境,对于学习和实践开源OLAP技术,尤其是mondrian和jpviot的结合使用,是非常有价值的资源。开发者可以通过研究源码,了解系统的工作机制,同时...

    Mondrian+Oracle 实例

    在这个"Mondrian+Oracle 实例"中,我们将深入探讨如何配置和使用Mondrian与Oracle数据库的集成,以及如何解决可能出现的问题。 1. **Mondrian概述** Mondrian是一个基于Java的OLAP服务器,它解析多维数据模型...

    JPivot+Mondrian资料收集汇总(1)

    JPivot基于Swing组件,它通过Mondrian的XMLA接口与数据源进行通信。设计模式中,JPivot利用了Model-View-Controller(MVC)架构,使得用户界面与数据处理分离,提高了代码的可维护性和可扩展性。模型层处理数据的...

    JPivot+Mondrian资料收集汇总(2)

    【标题】"JPivot+Mondrian资料收集汇总(2)"主要涵盖了关于JPivot及其与Mondrian的集成使用的深度解析。这个资料集合显然旨在为开发者提供一个全面的JPivot学习平台,以便更好地理解和应用这个开源的多维数据浏览和...

    jpivot+wcf

    解压文件后: 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....可以发布war应用程序,并结合src源代码,研究下mondrian+jpivot实现框架

    mondrian配置例子

    `olap4j.jar`是Java OLAP API,它为开发人员提供了一组接口和类,用于与Mondrian或其他OLAP服务器交互。`mondrian.jar`则是Mondrian的主库,包含了OLAP引擎的核心实现。 `JPivot.war`是一个基于Web的OLAP前端工具,...

    mondrian动态报表工具

    mondrian-jpivot示例.war, saiku-2.6.zip

    mondrian部署、配置总结1

    在本篇文章中,我们将探讨如何部署和配置Mondrian,以及与之相关的Jpivot组件。Mondrian使用XMLA协议与数据库交互,并通过自定义的MDX(多维表达式)语言查询数据,提供灵活的数据分析能力。 **一、Mondrian部署** ...

    Mondrian用于web项目

    下面将详细介绍Mondrian在Web项目中的应用及其报表开发的关键知识点。 一、Mondrian概述 Mondrian是一个基于Java的多维数据库解析器,它可以将关系型数据库的数据转换为多维立方体,便于用户进行快速的分析和查询。...

    olap,jpivot-1.8.0.zip

    3. **数据连接**:Jpivot可以连接到各种数据源,包括关系数据库、多维数据集(如 Mondrian)或其他支持JDBC的源。这使得它具有广泛的适应性,能处理多种类型的数据。 4. **动态维度**:Jpivot的一个亮点是其动态...

    JPivot标签使用详解 中文

    JPivot是一款基于Mondrian的在线分析处理(OLAP)前端展示工具,专门解决OLAP的展示层问题。它提供了一系列的JSP标签,使得开发者能够在网页中方便地构建和控制OLAP应用。下面将详细阐述各个主要标签的功能和用法。 ...

    jpivot-1.8.0

    它使用Mondrian 作为其OLAP服务器。它使用WCF (Web Component Framework) ,基于XML/XSLT来渲染Web UI组件。JPivot在元数据缓存方面的过于简化的整体性初始化装载的做法将限制它只能处理很小的立方体(Cube)

    mondrian运行源码配置方法

    mondrian是一款开源的在线分析处理(OLAP)服务器,它基于Java语言开发,常用于构建数据仓库和商业智能系统的分析层。本资源提供了一种详细、实用的mondrian源码运行配置方法,使得开发者能够更好地理解和调试...

    jpivot-1.8.jar

    2. **配置数据源**:根据需求配置OLAP数据源,这可能涉及到XMLA、 mondrian 或其他支持的数据提供者。 3. **创建Web页面**:利用jpivot提供的JSP标签或者Servlet API,在Web应用中创建数据透视表的界面。 4. **...

    如何将Mondrian用于web项目.ppt

    【Mondrian是什么】 Mondrian是一个开源的Java实现...通过以上内容,我们可以看到Mondrian作为OLAP解决方案,为Java Web项目提供了强大的分析能力,使得开发人员能够快速构建数据密集型应用,提供深度洞察和报告功能。

    数据分析工具mondrian教程

    压缩包中的"如何将Mondrian用于web项目.ppt"文件可能包含将mondrian集成到Web应用程序的具体步骤和技术,这对于开发人员来说非常有价值。"ROLAP的概念.ppt"和"MDX的基本语法及概念.ppt"则深入讲解了这些关键概念。...

    jpivot教程

    ### jpivot教程精要 #### 一、简介与安装配置 **jpivot** 是一个用于构建多维数据透视表的应用程序框架,适用于Java Web应用程序。它利用Mondrian OLAP服务器来处理多维数据集,并提供了丰富的API以及前端组件来...

    Pentaho mondrian的几种多维展示方案

    Pentaho Mondrian是Pentaho BI套件中的核心组件,专门用于实现在线分析处理(OLAP)功能。Mondrian是一个开源的多维数据库引擎,它可以解析多维立方体模型,并提供快速的数据聚合和查询服务。在Pentaho BI环境中,...

Global site tag (gtag.js) - Google Analytics