WEB开发网
开发学院软件开发Java 使用 Flex3 开发 OLAP 应用 阅读

使用 Flex3 开发 OLAP 应用

 2010-03-31 00:00:00 来源:WEB开发网   
核心提示: 图 3. Pie Chart – customized styleOLAPDataGrid 的使用在 Flex3 之前,大多数的表格都是基于 DataGrid 的,使用 Flex3 开发 OLAP 应用(8),其以多列布局显示给定的数据集,而在 Flex3 中,对于产品维和时间维需要

图 3. Pie Chart – customized style
使用 Flex3 开发 OLAP 应用

OLAPDataGrid 的使用

在 Flex3 之前,大多数的表格都是基于 DataGrid 的,其以多列布局显示给定的数据集。而在 Flex3 中,添加了两个类似于 DataGrid 的控件:AdvancedDataGrid 和 OLAPDataGrid。其中 OLAPDataGrid 组件的出现,大大加速了 OLAP 应用中常见的多表头数据集的开发。接下来我们重点介绍 OLAPDataGrid 的用法及相应扩展。

在 .mxml 中定义 OLAPDataGrid 组件的代码如下:

<mx:OLAPDataGrid id="myOLAPDG" width="100%" height="100%"></mx:OLAPDataGrid>

而具体的构建 OLAPDataGrid 的动作,同样我们也放在 actionscript 中进行。数据立方体模型作为 OLAP 应用中的模型核心,在 Flex 的 OLAPDataGrid 组件中亦如此。

数据立方体数据立方体是一类多维矩阵,允许以多维角度对数据建模和观察。

首先我们需要在逻辑定义 cube 模型的各维度信息,本例子就是清单 1 中所示的产品维和时间维。

接着我们就可以构建这个 cube。OLAPCube 的 elements 属性包含了所有需要显示的维度,所以此例中将两维信息(产品,时间)以 OLAPDimension 加入其中,而度量值(销售额)则以 OLAPMeasure 的方式加入其中。对于产品维和时间维需要用 OLAPDimension 来设置相应的 OLAPAttribute 与 OLAPHierarchy,销售额维则采用 OLAPMeasure 来设置。

清单 6. createCube

 private function createMyCube():void { 
  myCube = new OLAPCube(); 
  myCube.addEventListener(CubeEvent.CUBE_COMPLETE, runQuery); 
 
  // 创建 dim1 维度 
  var dim1:OLAPDimension = new OLAPDimension("Dim1"); 
 
  // 对于 dim1 创建其 attributes 
  var attr1:OLAPAttribute = new OLAPAttribute(chartXML.dim1label); 
  attr1.dataField = "dim1"; 
  attr1.displayName = chartXML.dim1label; 
 
  dim1.attributes = new ArrayCollection([ attr1 ]); 
 
  // 在维上创建用户定义的 hierarchy 
  var dim1Hierarchy:OLAPHierarchy = new OLAPHierarchy("Dim1"); 
 
  // 在 hierarchy 上定义 level 
  var level1:OLAPLevel = new OLAPLevel(); 
  level1.attributeName = chartXML.dim1label; 
 
  dim1Hierarchy.levels = new ArrayCollection([ level1 ]); 
 
  // 将创建好的 hierarchy 设置在 dim1 上 
  dim1.hierarchies = new ArrayCollection([ dim1Hierarchy ]); 
 
  // 创建 dim2 维度 
  var dim2:OLAPDimension = new OLAPDimension("Dim2"); 
 
  // 对于 dim2 创建其 attributes 
  var attr2:OLAPAttribute = new OLAPAttribute(chartXML.dim2label); 
  attr2.dataField = "dim2"; 
  //attr2.displayName = chartXML.dim2label; 
 
  dim2.attributes = new ArrayCollection([ attr2 ]); 
 
  // 在维上创建用户定义的 hierarchy 
  var dim2Hierarchy:OLAPHierarchy = new OLAPHierarchy("Dim2"); 
 
  // 在 hierarchy 上定义 level 
  var level2:OLAPLevel = new OLAPLevel(); 
  level2.attributeName = chartXML.dim2label ; 
 
  dim2Hierarchy.levels = new ArrayCollection([ level2 ]); 
 
  // 将创建好的 hierarchy 设置在 dim2 上 
  dim2.hierarchies = new ArrayCollection([ dim2Hierarchy ]); 
 
  // 创建 measure 度量信息 
  var measure:OLAPMeasure = new OLAPMeasure("Measure"); 
  measure.dataField = "measure"; 
  measure.aggregator = "SUM"; 
 
  // dim1 维度,dim2 维度以及 measure 度量信息构成了整个 cube 的所有元素 
  myCube.elements = [ dim1, dim2, measure ]; 
 } 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:使用 Flex 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接