У вас есть два варианта для этого. Во-первых, это использовать другую расширенную сетку данных, а другую - изменить ваш dataProvider.
Допустим, у вас есть arrayCollection объектов типа MockData
public class MockData
{
public var value1:Number;
public var value2:Number;
public var value3:Number;
public var value4:Number;
}
Параметр двух сеток данных должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
protected function getSummedResult(value:Object):ArrayCollection
{
var summedResult:MockData = new MockData();
summedResult.value1 = 0;
summedResult.value2 = 0;
summedResult.value3 = 0;
summedResult.value4 = 0;
for each (var data:MockData in value as ArrayCollection)
{
summedResult.value1 += data.value1;
summedResult.value2 += data.value2;
summedResult.value3 += data.value3;
summedResult.value4 += data.value4;
}
return new ArrayCollection([summedResult]);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<s:ArrayCollection id="mockData">
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
<mock:MockData
value1="{Math.random() * 10}"
value2="{Math.random() * 100}"
value3="{Math.random() * 1000}"
value4="{Math.random() * 10000}"/>
</s:ArrayCollection>
</fx:Declarations>
<mx:VBox>
<mx:AdvancedDataGrid id="dateGrid" dataProvider="{mockData}" />
<mx:AdvancedDataGrid rowCount="2"
id="dateGrid2" dataProvider="{getSummedResult(dateGrid.dataProvider)}" />
</mx:VBox>
Второй вариант - использовать только одну сетку, подобную этой:
<mx:AdvancedDataGrid id="dateGrid" dataProvider="{getSummedResult(mockData)}" />
protected function getSummedResult(value:Object):ArrayCollection
{
var dataProvider:ArrayCollection = ArrayCollection(value);
var summedResult:MockData = new MockData();
summedResult.value1 = 0;
summedResult.value2 = 0;
summedResult.value3 = 0;
summedResult.value4 = 0;
for each (var data:MockData in dataProvider)
{
summedResult.value1 += data.value1;
summedResult.value2 += data.value2;
summedResult.value3 += data.value3;
summedResult.value4 += data.value4;
}
var result:ArrayCollection = new ArrayCollection(dataProvider.source.concat());
result.addItem(summedResult);
return result;
}
Ваш личный выбор будет более полезным. Вы можете изменить поставщика данных, если у вас есть установщик для него, но с привязкой это довольно просто.
Удачи и удачи.