您的位置:首页 > 其它

Flex ms:AdvancedDataGrid汇总统计方法

2014-08-07 18:33 260 查看
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对应的

-----------------------------------------------

如何设计汇总的行背景颜色,研究中,日后补上 ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: