The following code is used to drilldown data and display data in a treeview format in FLEX.
<?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="application1_creationCompleteHandler(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script source="\\Common\\CommonScripts.as"/>
<fx:Script>
<![CDATA[
import COMMON.*;
import mx.collections.ArrayCollection;
import mx.collections.IHierarchicalCollectionView;
import mx.events.FlexEvent;
[Bindable]
private var AdvGrdArrCol:ArrayCollection= new ArrayCollection
private var ParentArrCol:ArrayCollection = new ArrayCollection
private var xml:String = "";
private var TQty:int;
private var TSal:int;
private var Qty:int;
private var Sal:int;
protected function recurse(o:Object):uint
{
// grab the general list, for commodity
var view:IHierarchicalCollectionView = AdDtGv.dataProvider as IHierarchicalCollectionView;
// I count as 1 if we're recursing through me
var total:uint = 1;
// check if I'm open
for each (var e:Object in view.openNodes)
{
if (e == o)
{
// if so I need to add my children and their families
for each (var c:Object in o.children)
total += recurse(c);
}
}
// if not I'm done, just counting myself
return total
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
useWebService("Test_Test", "ADVGRD", "", "", "", "", "", "");
}
private function WebService_Result(event:Object):void
{
AdvGrdArrCol = event.result.Tables.Table.Rows;
var TmpAct:String = "";
var TmpActNew:String = "";
for (var Loop:int=0; Loop<=AdvGrdArrCol.length-1;Loop++)
{
var obj:Object = new Object();
var tmpArr:ArrayCollection = new ArrayCollection();
var CustArr:ArrayCollection = new ArrayCollection();
if (TmpAct != AdvGrdArrCol[Loop].ACT)
{
TQty = 0;
TSal = 0;
obj['ACT'] = AdvGrdArrCol[Loop].ACT
TmpAct = AdvGrdArrCol[Loop].ACT
for (var i:int=0; i<=AdvGrdArrCol.length-1;i++)
{
Qty = 0;
Sal = 0;
if (TmpAct == AdvGrdArrCol[i].ACT)
{
if (TmpActNew != AdvGrdArrCol[i].CUST)
{
tmpArr = new ArrayCollection();
var objnew:Object = new Object();
objnew['ACT'] = AdvGrdArrCol[i].CUST
TmpActNew = AdvGrdArrCol[i].CUST
for (var j:int=0; j<=AdvGrdArrCol.length-1;j++)
{
if (TmpActNew == AdvGrdArrCol[j].CUST)
{
var TmpObj:Object = new Object();
TmpObj['PRD'] = AdvGrdArrCol[j].PRD
TmpObj['QTY'] = AdvGrdArrCol[j].QTY
TmpObj['VAL'] = AdvGrdArrCol[j].VAL
tmpArr.addItem(TmpObj);
TQty = TQty + AdvGrdArrCol[j].QTY
TSal = TSal + AdvGrdArrCol[j].VAL
Qty = Qty + AdvGrdArrCol[j].QTY
Sal = Sal + AdvGrdArrCol[j].VAL
}
}
objnew['QTY'] = Qty
objnew['VAL'] = Sal
objnew['children'] = tmpArr
CustArr.addItem(objnew);
obj['QTY'] = TQty
obj['VAL'] = TSal
obj['children'] = CustArr
}
}
}
ParentArrCol.addItem(obj)
}
}
}
]]>
</fx:Script>
<mx:AdvancedDataGrid x="30" y="25" id="AdDtGv" height="300">
<mx:dataProvider>
<mx:HierarchicalData source="{ParentArrCol}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Activity" dataField="ACT" width="150"/>
<mx:AdvancedDataGridColumn headerText="Product" dataField="PRD" width="200"/>
<mx:AdvancedDataGridColumn headerText="Quantity" dataField="QTY"/>
<mx:AdvancedDataGridColumn headerText="SalesValue" dataField="VAL"/>
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>
<?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="application1_creationCompleteHandler(event)">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script source="\\Common\\CommonScripts.as"/>
<fx:Script>
<![CDATA[
import COMMON.*;
import mx.collections.ArrayCollection;
import mx.collections.IHierarchicalCollectionView;
import mx.events.FlexEvent;
[Bindable]
private var AdvGrdArrCol:ArrayCollection= new ArrayCollection
private var ParentArrCol:ArrayCollection = new ArrayCollection
private var xml:String = "";
private var TQty:int;
private var TSal:int;
private var Qty:int;
private var Sal:int;
protected function recurse(o:Object):uint
{
// grab the general list, for commodity
var view:IHierarchicalCollectionView = AdDtGv.dataProvider as IHierarchicalCollectionView;
// I count as 1 if we're recursing through me
var total:uint = 1;
// check if I'm open
for each (var e:Object in view.openNodes)
{
if (e == o)
{
// if so I need to add my children and their families
for each (var c:Object in o.children)
total += recurse(c);
}
}
// if not I'm done, just counting myself
return total
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
useWebService("Test_Test", "ADVGRD", "", "", "", "", "", "");
}
private function WebService_Result(event:Object):void
{
AdvGrdArrCol = event.result.Tables.Table.Rows;
var TmpAct:String = "";
var TmpActNew:String = "";
for (var Loop:int=0; Loop<=AdvGrdArrCol.length-1;Loop++)
{
var obj:Object = new Object();
var tmpArr:ArrayCollection = new ArrayCollection();
var CustArr:ArrayCollection = new ArrayCollection();
if (TmpAct != AdvGrdArrCol[Loop].ACT)
{
TQty = 0;
TSal = 0;
obj['ACT'] = AdvGrdArrCol[Loop].ACT
TmpAct = AdvGrdArrCol[Loop].ACT
for (var i:int=0; i<=AdvGrdArrCol.length-1;i++)
{
Qty = 0;
Sal = 0;
if (TmpAct == AdvGrdArrCol[i].ACT)
{
if (TmpActNew != AdvGrdArrCol[i].CUST)
{
tmpArr = new ArrayCollection();
var objnew:Object = new Object();
objnew['ACT'] = AdvGrdArrCol[i].CUST
TmpActNew = AdvGrdArrCol[i].CUST
for (var j:int=0; j<=AdvGrdArrCol.length-1;j++)
{
if (TmpActNew == AdvGrdArrCol[j].CUST)
{
var TmpObj:Object = new Object();
TmpObj['PRD'] = AdvGrdArrCol[j].PRD
TmpObj['QTY'] = AdvGrdArrCol[j].QTY
TmpObj['VAL'] = AdvGrdArrCol[j].VAL
tmpArr.addItem(TmpObj);
TQty = TQty + AdvGrdArrCol[j].QTY
TSal = TSal + AdvGrdArrCol[j].VAL
Qty = Qty + AdvGrdArrCol[j].QTY
Sal = Sal + AdvGrdArrCol[j].VAL
}
}
objnew['QTY'] = Qty
objnew['VAL'] = Sal
objnew['children'] = tmpArr
CustArr.addItem(objnew);
obj['QTY'] = TQty
obj['VAL'] = TSal
obj['children'] = CustArr
}
}
}
ParentArrCol.addItem(obj)
}
}
}
]]>
</fx:Script>
<mx:AdvancedDataGrid x="30" y="25" id="AdDtGv" height="300">
<mx:dataProvider>
<mx:HierarchicalData source="{ParentArrCol}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Activity" dataField="ACT" width="150"/>
<mx:AdvancedDataGridColumn headerText="Product" dataField="PRD" width="200"/>
<mx:AdvancedDataGridColumn headerText="Quantity" dataField="QTY"/>
<mx:AdvancedDataGridColumn headerText="SalesValue" dataField="VAL"/>
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>
No comments:
Post a Comment