Reference: |
This topic provides sample code for filtering an aggregated DataGrid. It also describes the functions that accomplish this task.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="initApp()" viewSourceURL="doc_api4_filter_reset/index.html">
<mx:Script>
<![CDATA[
private var grid1:ibiObject = new ibiObject();
private var fex:String = "http://flexdemo.ibi.com:8080/ibi_apps/WFServlet?IBIF_ex=xmltest";
private var a:Array = ['[ALL]'];
private var aggField:Array = ['DOLLARS'];
private var byField:Array = ['REGION','CITY'];
private var calOpts:Array = ['Sum','Average'];
private var columnArray:Array = new Array();
private var filterOption:Array = ['EQ'];
private var selectedItem:Array = new Array();
private function grid1_agg(useFilter:Boolean=true):void
{
grid1.aggregate(aggField, byField,calOpts, useFilter, false);
main1agg.dataProvider = grid1.prGridagg;
} private function initApp():void
{
System.useCodePage=true;
grid1.init(fex,dataReady);
}
private function dataReady(grid:ibiObject,obj:*):void
{
grid1.populateGrid(false);
grid1_agg();
loadLists(true,true);
}
private function loadLists(city:Boolean,region:Boolean):void
{
if(city)cityList.dataProvider = a.concat(grid1.getUniqueValues("CITY",true));
if(region)regionList.dataProvider = a.concat(grid1.getUniqueValues("REGION",true));
} private function updateList(list:Object,col:String):void
{
if(list.selectedItem.toString() != '[ALL]'){
columnArray = [col];
selectedItem = [[list.selectedItem.toString()]];
grid1.filter(columnArray, filterOption, selectedItem, null , false);
grid1_agg();
if(col=='REGION')loadLists(true,false);
}
else{
grid1_agg(false);
}
}
]]>
</mx:Script> <mx:List x="10" y="199" id="regionList" change="updateList(regionList,'REGION')" height="101" width="129"></mx:List>
<mx:List x="156" y="199" id="cityList" change="updateList(cityList,'CITY')" height="101" width="135"></mx:List>
<mx:DataGrid x="10" y="38" width="477" id="main1agg" height="153">
<mx:columns>
<mx:DataGridColumn id="col1" headerText="Region" dataField="REGION"/>
<mx:DataGridColumn id="col2" headerText="City" dataField="CITY"/>
<mx:DataGridColumn id="col3" headerText="Total Sales" dataField="Sum.DOLLARS"/>
<mx:DataGridColumn id="col4" headerText="Average Sales" dataField="Average.DOLLARS"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
calculateOption of type String: Specifies which operation to perform on the column specified by calculateColumnName.
| WebFOCUS |