加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex ms:AdvancedDataGrid汇总统计方法

发布时间:2020-12-15 03:40:27 所属栏目:百科 来源:网络整理
导读:GroupingCollection2 在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。 grouping : 指定应用于源数据的 Grouping 实例。 GroupingField 类提供用于对由 AdvancedDataGrid 控件显示的平面数据进行分组的各数据字段。 summaries定义任意根级别数

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},PianQuHao:"44200000222220",MianJi:120,BaiFen:50},{JiBie:"3",PianQuHao:"44200000102020",BaiFen:60},{JiBie:"4",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对应的

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读