The full form of OLAP is online analytical processing.
OLAPDataGrid control contains a large amount of data in many dimensions. If you
collect the information of product from different region, and from different
customers in a two dimensional spreadsheet this data will be shown in
OLAPDataGrid very easily. You will need a three thing to create a OLAPDataGrid:
1. OLAP Cube
2. OLAP schema
3. OLAP query
The tag of OLAPDataGrid is <mx:OLAPDataGrid>.
|
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"xmlns:s=" library://ns.adobe.com/flex/spark"xmlns:mx=" library://ns.adobe.com/flex/mx"minWidth=" 955" minHeight="600"creationComplete="creationCompleteHandler();" > <fx:Declarations> <!-- Define OALP schema --> <mx:OLAPCube name="FlatProductSchemaCube"dataProvider=" {flatProductData}"id=" myProductCube"complete="runQuery(event);" > <!-- Define Dimentions --> <mx:OLAPDimension name="CustomerDimention"> <mx:OLAPAttribute name="Customer" dataField="customer"/> <mx:OLAPHierarchy name="CustomerHier" hasAll="true"> <mx:OLAPLevel attributeName="Customer"/> </mx:OLAPHierarchy> </mx:OLAPDimension> <mx:OLAPDimension name="ProductDimention"> <mx:OLAPAttribute name="Product" dataField="product"/> <mx:OLAPHierarchy name="ProductHier" hasAll="true"> <mx:OLAPLevel attributeName="Product"/> </mx:OLAPHierarchy> </mx:OLAPDimension> <mx:OLAPDimension name="QuarterDimention"> <mx:OLAPAttribute name="Quarter" dataField="quarter"/> <mx:OLAPHierarchy name="QuarterHier" hasAll="true"> <mx:OLAPLevel attributeName="Quarter"/> </mx:OLAPHierarchy> </mx:OLAPDimension> <!-- Define Measures --> <mx:OLAPMeasure name="Revenue"dataField=" revenue"aggregator=" MAX"/> </mx:OLAPCube> </fx:Declarations> <fx:Script><![CDATA[ import mx.rpc.AsyncResponder; import mx.rpc.AsyncToken; import mx.olap.OLAPQuery; import mx.olap.OLAPSet; import mx.olap.IOLAPQuery; import mx.olap.IOLAPQueryAxis; import mx.olap.IOLAPCube; import mx.olap.OLAPResult; import mx.events.CubeEvent; import mx.controls.Alert; import mx.collections.ArrayCollection; // Flat Product Data[ Bindable] private var flatProductData:ArrayCollection = new ArrayCollection([ {customer: "X", product:"Monitor", quarter:"First", revenue:210, cost:25},{customer: "X", product:"Processor", quarter:"Second", revenue:210, cost:25},{customer: "X", product:"Mouse", quarter:"Third", revenue:250, cost:125},{customer: "X", product:"Keyboard", quarter:"Fourth", revenue:430, cost:75},{customer: "Y", product:"Monitor", quarter:"Second", revenue:125, cost:20},{customer: "Y", product:"Processor", quarter:"Third", revenue:210, cost:20},{customer: "Y", product:"Mouse", quarter:"Fourth", revenue:320, cost:120},{customer: "Y", product:"Keyboard", quarter:"First", revenue:280, cost:70},{customer: "Z", product:"Monitor", quarter:"Third", revenue:375, cost:120},{customer: "Z", product:"Processor", quarter:"Fourth", revenue:430, cost:120},{customer: "Z", product:"Mouse", quarter:"First", revenue:470, cost:220},{customer: "Z", product:"Keyboard", quarter:"Second", revenue:570, cost:170},{customer: "X", product:"Monitor", quarter:"Fourth", revenue:215, cost:90},{customer: "X", product:"Processor", quarter:"First", revenue:210, cost:90},{customer: "X", product:"Mouse", quarter:"Second", revenue:175, cost:190},{customer: "X", product:"Keyboard", quarter:"Third", revenue:670, cost:75},{customer: "Y", product:"Monitor", quarter:"First", revenue:175, cost:20},{customer: "Y", product:"Processor", quarter:"Second", revenue:210, cost:20},{customer: "Y", product:"Mouse",quarter:"Third", revenue:120, cost:120},{customer: "Y", product:"Keyboard", quarter:"Fourth", revenue:310, cost:70},{customer: "Z", product:"Monitor", quarter:"First", revenue:385, cost:120},{customer: "Z", product:"Processor", quarter:"Second", revenue:340, cost:120},{customer: "Z", product:"Mouse", quarter:"Third", revenue:470, cost:220},{customer: "Z", product:"Keyboard", quarter:"Fourth", revenue:270, cost:170},{customer: "X", product:"Monitor", quarter:"First", revenue:100, cost:25},{customer: "X", product:"Processor", quarter:"Second", revenue:150, cost:25},{customer: "X", product:"Mouse", quarter:"Third", revenue:200, cost:125},{customer: "X", product:"Keyboard", quarter:"Fourth", revenue:300, cost:75},{customer: "Y", product:"Monitor", quarter:"Second", revenue:175, cost:20},{customer: "Y", product:"Processor", quarter:"Third", revenue:100, cost:20},{customer: "Y", product:"Mouse", quarter:"Fourth", revenue:270, cost:120},{customer: "Y", product:"Keyboard", quarter:"First", revenue:370, cost:70},{customer: "Z", product:"Monitor", quarter:"Third", revenue:410, cost:120},{customer: "Z", product:"Processor", quarter:"Fourth", revenue:300, cost:320},{customer: "Z", product:"Mouse", quarter:"First", revenue:510, cost:220},{customer: "Z", product:"Keyboard", quarter:"Second", revenue:620, cost:170},{customer: "X", product:"Monitor", quarter:"Fourth", revenue:215, cost:90},{customer: "X", product:"Processor", quarter:"First", revenue:210, cost:90},{customer: "X", product:"Mouse", quarter:"Second", revenue:175, cost:190},{customer: "X", product:"Keyboard", quarter:"Third", revenue:420, cost:75},{customer: "Y", product:"Monitor", quarter:"First", revenue:240, cost:20},{customer: "Y", product:"Processor", quarter:"Second", revenue:100, cost:20},{customer: "Y", product:"Mouse", quarter:"Third", revenue:270, cost:120},{customer: "Y", product:"Keyboard", quarter:"Fourth", revenue:370, cost:70},{customer: "Z", product:"Monitor", quarter:"First", revenue:375, cost:120},{customer: "Z", product:"Processor", quarter:"Second", revenue:420, cost:120},{customer: "Z", product:"Mouse", quarter:"Third", revenue:680, cost:220},{customer: "Z", product:"Keyboard", quarter:"Fourth", revenue:570, cost:170}]); // Refresh a OLAPCube public function creationCompleteHandler():void {myProductCube.refresh(); } // Create Quary public function getQuery(cube:IOLAPCube):IOLAPQuery { // instance of OLAPQuery var query:OLAPQuery = new OLAPQuery; // instance of OLAPQueryAxis class for row var rowQueryAxis:IOLAPQueryAxis =query.getAxis(OLAPQuery.ROW_AXIS); // instance of OLAPSet class var productSet:OLAPSet = new OLAPSet;productSet.addElements( cube.findDimension( "ProductDimention").findAttribute("Product").children);rowQueryAxis.addSet(productSet); // instance of OLAPQueryAxis class for column var colQueryAxis:IOLAPQueryAxis =query.getAxis(OLAPQuery.COLUMN_AXIS); // instance of OLAPSet class var quarterSet:OLAPSet= new OLAPSet;quarterSet.addElements( cube.findDimension( "QuarterDimention").findAttribute("Quarter").children);colQueryAxis.addSet(quarterSet); return query;} // Execute the Quary public function runQuery(event:CubeEvent):void { var cube:IOLAPCube = IOLAPCube(event.currentTarget); var query:IOLAPQuery = getQuery(cube); var token:AsyncToken = cube.execute(query);token.addResponder( new AsyncResponder(showResult, showFault));} // Query Fault public function showFault(result:Object, token:Object):void {Alert.show( "Error in query.");} // Query Success public function showResult(result:Object, token:Object):void { if (!result) {Alert.show( "No results from query."); return;} productDataGrid.dataProvider= result as OLAPResult;} ]]> </fx:Script> <s:Panel title="OLAPDataGrid Example" width="385" height="210"> <mx:OLAPDataGrid id="productDataGrid"x=" 11" y="11"width=" 359" height="155"/> </s:Panel></s:Application> |

To view this page ensure that Adobe Flash Player version 10.0.0 or greater is installed.
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.