使用Flex3开发OLAP应用

2012-03-24
浏览
导读:概要 联机分析处理(Online Analytical Processing,下文简称 OLAP)是一种共享多维信息、针对特定问题的联机数据访问和分析的快速软件技术。OLAP 专门设计用于

概要

联机分析处理(Online Analytical Processing,下文简称 OLAP)是一种共享多维信息、针对特定问题的联机数据访问和分析的快速软件技术。OLAP 专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理。本文将介绍如果利用 Flex 技术将这些复杂的查询处理结果美观,便捷地展现出来。

软件环境要求

Flash Player 9 或更高版本

Adobe Flex SDK 3.0 或更高版本

Adobe Flex SDK Builder 3 或更高版本

Flex 中的分析组件

在传统的 OLAP 分析组件开发中,各商业智能公司均有自己的一套产品实现,从设计和使用上均不具有开放性。而在 Flex SDK 中,原生地提供了众多分析组件,如饼图,柱状图等各种图表控件,并于 Flex3 中加入了 OLAPDataGrid,这使得基于 Flex 开发 OLAP 应用更加便捷。另外,由于 Flex 类库的良好扩展性,使得定制化的开发成为可能,进而满足 OLAP 分析中种类繁多的用户需求。

图表控件的使用

使用 Flex 中的组件通常有两种方式,一种是直接在 .mxml 文件的类 xml 标签中通过属性来指定这个组件的展现方式,这是最直观的方式。而另一种则将显示与逻辑分离,在 .mxml 文件中只是声明了将使用的组件,而具体的获得数据过程与数据展现过程则在相对应的 .as (actionscript) 中用编程的方式实现。本文将采用第二种方式进行描述:

首先新建一个 OLAPAppInFlex 的 Flex application。

接着用 ViewStack 组件将我们所要展示的三种图表控件粘合在一起,通过点击 ViewStack 的 tab 页来查看不同的展示效果。

清单 1. OLAPAppInFlex.mxml

<mx:Script source="include/Chart.as" />
……
  <mx:ViewStack id="viewStack" width="100%" height="75%" creationComplete="showData()">
  <mx:HBox id="columnBox" name="ColumnChart" width="100%">
   <mx:ColumnChart id="columnChart" showDataTips="true" width="100%" height="100%"/>
   <mx:Panel id="columnLegendPanel" horizontalScrollPolicy="off">
    <mx:Box maxHeight="250" horizontalScrollPolicy="off">
     <mx:Legend id="columnLegend" width="100%" />
    </mx:Box>
   </mx:Panel>
  </mx:HBox>

  <mx:HBox id="pieBox" name="PieChart" width="100%">
  </mx:HBox>

  <mx:HBox id="lineBox" name="LineChart" width="100%">
   <mx:LineChart id="lineChart" showDataTips="true" width="100%" height="100%" />
   <mx:Panel id="lineLegendPanel" horizontalScrollPolicy="off">
    <mx:Box maxHeight="250" horizontalScrollPolicy="off">
     <mx:Legend id="lineLegend" width="100%" />
    </mx:Box>
   </mx:Panel>
  </mx:HBox>
  </mx:ViewStack>

在上述代码中第一行引入了 Chart.as,并在此文件中实现了图形的展现逻辑。

而在介绍 Chart.as 如何实现图形的展现逻辑前,先介绍两个一般性的问题:

Flash基础教程 动画基础知识

flash as3.0 跨域的解决办法

网络相册开发(8)——Cairngorm架构浅析

Flex中PureMVC学习小结

Flex与.NET互操作(十六):FluorineFx + F