Flex ms:AdvancedDataGrid汇总统计方法

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对应的

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

如何设计汇总的行背景颜色,研究中,日后补上 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值