mx.olap

# OLAPCube - AS3 Flex

Package | mx.olap
Class | public class OLAPCube
Inheritance | OLAPCube Proxy
Implements | IOLAPCube, IEventDispatcher

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The OLAPCube class represents an OLAP cube.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<mx:OLAPCube>` tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

      <mx:OLAPCube
        Properties
        dataProvider=""
        dimensions=""
        elements=""
        measures=""
      />

Default MXML Property `elements`

More examples

Preparing a cube for a query
Creating a query axis
Executing a query and returning the results to an OLAPDataGrid control
Writing a query for a simple OLAP cube
Writing a query for a complex OLAP cube
Creating a query using a nondefault measure

Related API Elements

mx.olap.IOLAPCube

Public Properties

| Property | Defined By
--- | --- | ---
|  | dataProvider : ICollectionView The flat data used to populate the OLAP cube. | OLAPCube
|  | dimensions : IList All dimensions in the cube, as a list of IOLAPDimension instances. | OLAPCube
|  | elements : Array [write-only] Processes the input Array and initializes the dimensions and measures properties based on the elements of the Array. | OLAPCube
|  | measures : IList [write-only] Sets the measures of the OLAP cube, as a list of OLAPMeasure instances. | OLAPCube
|  | name : String The name of the OLAP cube. | OLAPCube

Protected Properties

| Property | Defined By
--- | --- | ---
|  | cubeBuildingTimeInterval : int = 5 The time interval, in milliseconds, used by the timer of the refresh() method to iteratively build the cube. | OLAPCube
|  | measureDimensionName : String = "Measures" Sets the name of the dimension for the measures of the OLAP cube. | OLAPCube
|  | queryBuildingTimeInterval : int = 1 The time interval, in milliseconds, used by the timer of the execute() method to iteratively process queries. | OLAPCube
|  | resultClass : Class The class used by an OLAPCube instance to return the result. | OLAPCube
|  | workDuration : int = 50 The time, in milliseconds, used by the refresh() method to iteratively build the cube. | OLAPCube

Public Methods

| Method | Defined By
--- | --- | ---
|  | OLAPCube(name:String = null) Constructor. | OLAPCube
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | OLAPCube
|  | cancelQuery(query:IOLAPQuery):void Aborts a query that has been submitted for execution. | OLAPCube
|  | cancelRefresh():void Aborts the current cube refresh, if one is executing. | OLAPCube
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | OLAPCube
|  | execute(query:IOLAPQuery):mx.rpc:AsyncToken Queues an OLAP query for execution. | OLAPCube
|  | findDimension(name:String):IOLAPDimension Returns the dimension with the given name within the OLAP cube. | OLAPCube
|  | hasEventListener(type:String):Boolean Checks whether the object has any listeners registered for a specific type of event. | OLAPCube
|  | refresh():void Refreshes the cube from the data provider. | OLAPCube
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener. | OLAPCube
|  | toString():String Returns the name of the cube | OLAPCube
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this object or any of its ancestors for the specified event type. | OLAPCube

Events
Click for more information on events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | complete | Dispatched when a cube has been created and is ready to be queried. | OLAPCube
|  | progress | Dispatched continuously as a cube is being created by a call to the refresh() method. | OLAPCube
|  | queryProgress | Dispatched continuously as a query result is being generated by a call to the execute() method. | OLAPCube

Property Detail

### cubeBuildingTimeInterval

property

`protected var cubeBuildingTimeInterval:int = 5`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The time interval, in milliseconds, used by the timer of the `refresh()` method to iteratively build the cube. You can set it to a higher value if you can wait longer before the cube is built. You can set it to a lower value, but it might negatively impact responsiveness of your application.

### dataProvider

property

`dataProvider:ICollectionView`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The flat data used to populate the OLAP cube. You must call the `refresh()` method to initialize the cube after setting this property.

Implementation
`public function get dataProvider():ICollectionView`
`public function set dataProvider(value:ICollectionView):void`

### dimensions

property

`dimensions:IList`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

All dimensions in the cube, as a list of IOLAPDimension instances.

Implementation
`public function get dimensions():IList`
`public function set dimensions(value:IList):void`

### elements

property

`elements:Array` [write-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Processes the input Array and initializes the `dimensions` and `measures` properties based on the elements of the Array. Dimensions are represented in the Array by instances of the OLAPDimension class, and measures are represented by instances of the OLAPMeasure class.

Use this property to define the dimensions and measures of a cube in a single Array.

Implementation
`public function set elements(value:Array):void`

### measureDimensionName

property

`protected var measureDimensionName:String = "Measures"`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Sets the name of the dimension for the measures of the OLAP cube.

The default value is `"Measures".`

### measures

property

`measures:IList` [write-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Sets the measures of the OLAP cube, as a list of OLAPMeasure instances.

Implementation
`public function set measures(value:IList):void`

### name

property

`name:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The name of the OLAP cube.

Implementation
`public function get name():String`
`public function set name(value:String):void`

### queryBuildingTimeInterval

property

`protected var queryBuildingTimeInterval:int = 1`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The time interval, in milliseconds, used by the timer of the `execute()` method to iteratively process queries. You can set it to a higher value if you can wait for longer before the cube generates the query result. You can set it to a lower value to obtain query results faster, but it might negatively impact the responsiveness of your application.

### resultClass

property

`protected var resultClass:Class`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The class used by an OLAPCube instance to return the result. You can replace the default class, OLAPResult, with your own implementation of the IOLAPResult interface to customize the result.

The default value is `OLAPResult.`

### workDuration

property

`protected var workDuration:int = 50`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

The time, in milliseconds, used by the `refresh()` method to iteratively build the cube. A higher value would mean more rows would get processed at each timer event. You can set it to a higher value if you want the cube to be built faster, but it might negatively impact responsiveness of your application.

Constructor Detail

### OLAPCube

()
Constructor

`public function OLAPCube(name:String = null)`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Constructor.

Parameters

| `name:String` (default = `null`)`` — The name of the OLAP cube.

Method Detail

### addEventListener

()
method

`public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.

Parameters

| `type:String` — The type of event.
| `listener:Function` — The listener function that processes the event.
| `useCapture:Boolean` (default = `false`)`` — Determines whether the listener works in the capture phase or the target and bubbling phases.
| `priority:int` (default = `0`)`` — The priority level of the event listener.
| `useWeakReference:Boolean` (default = `false`)`` — Determines whether the reference to the listener is strong or weak. A strong reference (the default) prevents your listener from being garbage-collected. A weak reference does not.

Related API Elements

flash.events.EventDispatcher.addEventListener()

### cancelQuery

()
method

`public function cancelQuery(query:IOLAPQuery):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Aborts a query that has been submitted for execution.

Parameters

| `query:IOLAPQuery` — The query to abort.

### cancelRefresh

()
method

`public function cancelRefresh():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Aborts the current cube refresh, if one is executing.

### dispatchEvent

()
method

`public function dispatchEvent(event:Event):Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatches an event into the event flow. The event target is the object upon which the `dispatchEvent()` method is called.

Parameters

| `event:Event` — The Event object that is dispatched into the event flow.

Returns

| `Boolean` — A value of `true` if the event was successfully dispatched. A value of `false` indicates failure or that the `preventDefault()` method was called on the event.

Related API Elements

flash.events.EventDispatcher.dispatchEvent()

### execute

()
method

`public function execute(query:IOLAPQuery):mx.rpc:AsyncToken`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Queues an OLAP query for execution. After you call the `refresh()` method to update the cube, you must wait for a `complete` event before you call the `execute()` method.

OLAP cubes can be complex, so you do not want your application to pause while Flex calculates the results of your OLAP query. The `execute()` method returns an instance of the AsyncToken class, which lets you set up handlers for asynchronous operations so that your application can continue to execute during query processing.

When using the AsyncToken class, you set up two functions to handle the query results. In this example, the showResult() function handles the query results when the query succeeds, and the showFault() function handles any errors detected during query execution:

          <mx:Script>

                  // Function to execute a query.
                  private function runQuery(cube:IOLAPCube):void {
                      // Create a query instance.
                      var query:IOLAPQuery = getQuery(cube);
                      // Execute the query.
                      var token:AsyncToken = cube.execute(query);
                      // Set up handlers for the query results.
                      token.addResponder(new AsyncResponder(showResult, showFault));
                  }

                  // Handle a query fault.
                  private function showFault(result:FaultEvent, token:Object):void {
                      Alert.show("Error in query.");
                  }

                  // Handle a query success.
                  private function showResult(result:Object, token:Object):void {
                      if (!result) {
                          Alert.show("No results from query.");
                          return;
                      }

                      myOLAPDG.dataProvider= result as OLAPResult;
                  }
          </mx:Script>

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

Parameters

| `query:IOLAPQuery` — The query to execute, represented by an IOLAPQuery instance.

Returns

| `mx.rpc:AsyncToken` — An AsyncToken instance.

### findDimension

()
method

`public function findDimension(name:String):IOLAPDimension`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns the dimension with the given name within the OLAP cube.

Parameters

| `name:String` — The name of the dimension.

Returns

| `IOLAPDimension` — An IOLAPDimension instance representing the dimension, or null if a dimension is not found.

### hasEventListener

()
method

`public function hasEventListener(type:String):Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Checks whether the object has any listeners registered for a specific type of event. This lets you determine where an object has altered handling of an event type in the event flow hierarchy.

Parameters

| `type:String` — The type of event.

Returns

| `Boolean` — A value of `true` if a listener of the specified type is registered; `false` otherwise.

Related API Elements

flash.events.EventDispatcher.hasEventListener()

### refresh

()
method

`public function refresh():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Refreshes the cube from the data provider. After setting the cube's schema, you must call this method to build the cube.

This method dispatches a `progress` event to indicate progress, and dispatches a `complete` event when the cube is complete and ready to execute queries. You must wait for a `complete` event before you call the `execute()` method to run a query.

### removeEventListener

()
method

`public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Removes a listener. If there no matching listener is registered, a call to this method has no effect.

Parameters

| `type:String` — The type of event.
| `listener:Function` — The listener object to remove.
| `useCapture:Boolean` (default = `false`)`` — Specifies whether the listener was registered for the capture phase or the target and bubbling phases.

Related API Elements

flash.events.EventDispatcher.removeEventListener()

### toString

()
method

`public function toString():String`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns the name of the cube

Returns

| `String` — The name of the cube.

### willTrigger

()
method

`public function willTrigger(type:String):Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Checks whether an event listener is registered with this object or any of its ancestors for the specified event type. This method returns `true` if an event listener is triggered during any phase of the event flow when an event of the specified type is dispatched to this object or to any of its descendants.

Parameters

| `type:String` — The type of event.

Returns

| `Boolean` — A value of `true` if a listener of the specified type is triggered; `false` otherwise.

Related API Elements

flash.events.EventDispatcher.willTrigger()
Event Detail

### complete

Event

Event Object Type: `mx.events.CubeEvent`
property CubeEvent.type = `mx.events.CubeEvent.CUBE_COMPLETE`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched when a cube has been created and is ready to be queried.

The `CubeEvent.CUBE_COMPLETE` constant defines the value of the `type` property of the event object for a `complete` event.

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | `false`
`cancelable` | `true`
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`description` | Description of what is being processed.
`progress` | The number of elements in the cube that have been updated.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.
`total` | The total number of elements in the cube that need to be udpated.
`type` | CubeEvent.CUBE_COMPLETE

### progress

Event

Event Object Type: `mx.events.CubeEvent`
property CubeEvent.type = `mx.events.CubeEvent.CUBE_PROGRESS`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched continuously as a cube is being created by a call to the `refresh()` method.

The `CubeEvent.CUBE_PROGRESS` constant defines the value of the `type` property of the event object for a `progress` event.

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | `false`
`cancelable` | `true`
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`description` | Description of what is being processed.
`progress` | The number of elements in the cube that have been updated.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.
`total` | The total number of elements in the cube that need to be udpated.
`type` | CubeEvent.CUBE_PROGRESS

### queryProgress

Event

Event Object Type: `mx.events.CubeEvent`
property CubeEvent.type = `mx.events.CubeEvent.QUERY_PROGRESS`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched continuously as a query result is being generated by a call to the `execute()` method.

The `CubeEvent.QUERY_PROGRESS` constant defines the value of the `type` property of the event object for a `queryProgress` event.

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | `false`
`cancelable` | `true`
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`description` | Description of what is being processed.
`progress` | The number of elements in the cube that have been updated.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.
`total` | The total number of elements in the cube that need to be udpated.
`type` | CubeEvent.QUERY_PROGRESS

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00