http://www.helpqlodhelp.com/blog/archives/000154.html
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var dataProvider : ArrayCollection = createData();
private function createData() : ArrayCollection
{
var result : ArrayCollection = new ArrayCollection();
for( var i : int = 0; i < 3; i++ )
{
result.addItem( createSimpleRow());
}
result.addItem( createSubTotalRow( result ));
return result;
}
private function createSimpleRow() : Object
{
var result : Object = new Object();
result.A = randomInt( 10 );
result.B = randomInt( 10 );
result.C = randomInt( 10 );
return result;
}
private function createSubTotalRow( data : ArrayCollection ) : Object
{
var result : Object = new Object();
result.data = data;
result.A = createSubTotalObject( data, “A” );
result.B = createSubTotalObject( data, “B” );
result.C = createSubTotalObject( data, “C” );
return result;
}
private function createSubTotalObject( data : ArrayCollection, property : String ) : Object
{
var result : Object = new Object();
result.toString = function() : String
{
var sum : Number = 0;
var length : int = data.length – 1;
for( var i : int = 0; i < length; i++ )
{
var item : Object = data.getItemAt( i );
var value : Number = item[ property ];
if( ! isNaN( value ))
{
sum += value;
}
}
return sum.toString();
}
return result;
}
private function randomInt( max : int ) : int
{
return Math.floor( Math.random() * max );
}
]]>
</mx:Script>
<mx:DataGrid dataProvider=”{ dataProvider }” editable=”true”/>
</mx:Application>


