GroupingCollection2 在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。
grouping : 指定应用于源数据的 Grouping 实例。
GroupingField 类提供用于对由 AdvancedDataGrid 控件显示的平面数据进行分组的各数据字段。
summaries定义任意根级别数据摘要的 SummaryRow 实例数组。指定一个或多个 SummaryRow 实例以定义数据摘要。
SummaryRow 类代表 AdvancedDataGrid 的摘要行。可使用 GroupingField 或 GroupingCollection 类的 summaries 属性创建有关数据组的摘要数据。在 AdvancedDataGrid 控件的现有行中显示摘要数据,或者在单独的行中显示。
SummaryField2 类代表 SummaryRow 实例中的一个属性。每个 SummaryRow 实例都指定一个或多个用于创建数据摘要的 SummayField2 实例。
( 以上来自Flex4 Beta语言参考)
mx:AdvancedDataGrid 数据汇总例子:
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.SummaryObject;
[Bindable]
private var areaData:ArrayCollection=new ArrayCollection([
{JiBie:"1",PianQuHao:"442GOOGLE02020",MianJi:100,BaiFen:10},
{JiBie:"1",PianQuHao:"44200TMD102020",MianJi:200,BaiFen:1},
{JiBie:"2",PianQuHao:"44200000133330",MianJi:300,BaiFen:40},
{JiBie:"2",PianQuHao:"44200000111110",MianJi:120,BaiFen:50},
{JiBie:"3",PianQuHao:"44200000102020",MianJi:100,BaiFen:60},
{JiBie:"4",PianQuHao:"44200000102020",MianJi:220,BaiFen:20}
]);
]]>
</fx:Script>
<mx:AdvancedDataGrid id="myADG"
columnWidth="100" height="100%"
initialize="gc.refresh();">
<mx:dataProvider>
<mx:GroupingCollection2 id="gc" source="{areaData}">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="JiBie">
<mx:summaries>
<mx:SummaryRow summaryPlacement="group" >
<mx:fields>
<mx:SummaryField2 dataField="MianJi" summaryOperation="SUM" />
<mx:SummaryField2 dataField="BaiFen" summaryOperation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
</mx:GroupingField>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection2>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="JiBie" headerText="级别"/>
<mx:AdvancedDataGridColumn dataField="PianQuHao" headerText="片区号"/>
<mx:AdvancedDataGridColumn dataField="MianJi" headerText="面积"/>
<mx:AdvancedDataGridColumn dataField="BaiFen" headerText="百分比"/>
</mx:columns>
</mx:AdvancedDataGrid>
SummaryRow属性summaryPlacement指定摘要行在 AdvancedDataGrid 控件中的显示位置
"first" - 创建摘要行作为组中的第一行。
"last" — 创建摘要行作为组中的最后一行。
"group" - 将摘要数据添加到与组对应的行。
可以指定多个值,用空格分隔。例如,"last group" 值显示位于组级别中子项最后一行的相同摘要行。
SummaryField2属性summaryOperation针对子代执行的摘要,对于数值字段:SUM、MIN、MAX、AVG 或 COUNT。(一定要大写)
----------------------------------------------------------
当<mx:SummaryRow summaryPlacement="group last" >时,效果如下图:
<mx:summaries>
<mx:SummaryRow summaryPlacement="group last" >
<mx:fields>
<mx:SummaryField2 dataField="MianJi" summaryOperation="SUM" />
<mx:SummaryField2 dataField="BaiFen" summaryOperation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
------------------------------------------------
添加“合计”字样:
<mx:summaries>
<mx:SummaryRow summaryPlacement="last"
summaryObjectFunction="{function():Object{return {JiBie: '合计:'};}}">
<mx:fields>
<mx:SummaryField2 dataField="MianJi" summaryOperation="SUM" />
<mx:SummaryField2 dataField="BaiFen" summaryOperation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
summaryObjectFunction指定定义摘要对象的回调函数,它是 SummaryObject 类的一个实例。
function():Object{return {JiBie: '合计:'};}本人理解是当JiBie列有数据时就显示数据,没有就用“合计”字样来填充。
<mx:summaries>
<mx:SummaryRow summaryPlacement="group"
summaryObjectFunction="{function():Object{return {PianQuHao: '合计:'};}}">
<mx:fields>
<mx:SummaryField2 dataField="MianJi" summaryOperation="SUM" />
<mx:SummaryField2 dataField="BaiFen" summaryOperation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
----使用另一方法来使group时显示“合计”.
--------------------------------------------------------------------
<mx:dataProvider>
<mx:GroupingCollection2 id="gc" source="{areaData}">
...
<mx:SummaryRow summaryPlacement="group" >
<mx:fields>
<mx:SummaryField2 dataField="MianJi" summaryOperation="SUM" label="MianJiHeJi" />
<mx:SummaryField2 dataField="BaiFen" summaryOperation="SUM" label="BaiFenHeJi" />
</mx:fields>
...
</mx:dataProvider>
<mx:columns>
...
<mx:AdvancedDataGridColumn dataField="MianJiHeJi" headerText="面积合计"/>
<mx:AdvancedDataGridColumn dataField="BaiFenHeJi" headerText="百分比合计"/>
</mx:columns>
要注意:SummaryField2中的label属性是与AdvancedDataGridColumn的属性dataField对应的
-----------------------------------------------
如何设计汇总的行背景颜色,研究中,日后补上 ...