mondrian 写生成cube的xml时,如果连的是oracle下,所有的表名和字段名要用大写,否则它会去找带引号的名字,会出现找不到表等怪异问题。完全配置的例子文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<Schema name="tezz">
<Cube name="Sales">
<Table name="SALE" />
<!-- 客户维 -->
<Dimension name="客户性别" foreignKey="CUSID">
<Hierarchy hasAll="true" allMemberName="所有性别" primaryKey="CUSID">
<Table name="CUSTOMER"></Table>
<Level name="GENDER" column="GENDER"></Level>
</Hierarchy>
</Dimension>
<!-- 产品类别维 -->
<Dimension name="产品类别" foreignKey="PROID">
<Hierarchy hasAll="true" allMemberName="所有产品" primaryKey="PROID" primaryKeyTable="PRODUCT">
<join leftKey="PROTYPEID" rightKey="PROTYPEID">
<Table name="PRODUCT" />
<Table name="PRODUCTTYPE"></Table>
</join>
<Level name="PROTYPEID" column="PROTYPEID" nameColumn="PROTYPENAME" uniqueMembers="true" table="PRODUCTTYPE" />
<Level name="PROID" column="PROID" nameColumn="PRONAME" uniqueMembers="true" table="PRODUCT" />
</Hierarchy>
</Dimension>
<Measure name="数量" column="NUMB" aggregator="sum" datatype="Numeric" />
<Measure name="总销售额" aggregator="sum" datatype="Numeric" >
<MeasureExpression>
<SQL dialect="oracle">unitPrice*numb</SQL>
</MeasureExpression>
</Measure>
<CalculatedMember name="平均单价" dimension="Measures">
<Formula>[Measures].[总销售额] / [Measures].[数量]</Formula>
<CalculatedMemberProperty name="FORMAT_STRING"
value="¥#,##0.00" />
</CalculatedMember>
</Cube>
</Schema>
--------------------------------------------------------------------------------------------------------------------------
mondrian 源码在eclipse下构建 ,下载3.5版本,命令行下运行ant,需要注意,系统需要同时安装jdk1.5 1.6 1.7分别配置为JAVA_HOME_15 JAVA_HOME_16 JAVA_HOME_17 ;需要配置CATALINA_HOME为tomcat的目录,我使用tomcat 6.0.18 ,需要配置ANT_HOME,然后ant可以顺利build,之后用eclipse 的new,然后使用ant文件构建出项目。
装完后有一个类报错,可以不用管,我使用的是jdk1,6我系统的默认jdk,不知道其他版本有没有问题,这个类的报错好像是jdk1.5相关的类。 JAVA_HOME_15