Flex 3 AdvancedDataGrid的使用(六)

来源:互联网 发布:淘宝装修多少钱 编辑:程序博客网 时间:2024/06/04 07:21

转自 http://hi.baidu.com/lz0830/blog/item/d7467713a9ddc4896438db60.html

创建多个汇总

您可以在单个GroupingField实例中指定多个SummaryRow实例。在下面的示例中,我们定义如下字段为Region组创建汇总数据:Min Actual、Max Actual、Min Estimate和Max Estimate:

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script>  <![CDATA[   import mx.collections.ArrayCollection;   include "SimpleFlatData.as"  ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG"  width="100%" height="100%"  initialize="gc.refresh();">  <mx:dataProvider>   <mx:GroupingCollection id="gc" source="{dpFlat}">    <mx:Grouping>     <mx:GroupingField name="Region">      <mx:SummaryRow summaryPlacement="group">       <mx:SummaryField operation="MIN"        dataField="Actual" label="Min Actual"/>       <mx:SummaryField operation="MAX"        dataField="Actual" label="Max Actual"/>      </mx:SummaryRow>      <mx:SummaryRow summaryPlacement="group">       <mx:SummaryField operation="MIN"        dataField="Estimate" label="Min Estimate"/>       <mx:SummaryField operation="MAX"        dataField="Estimate" label="Max Estimate"/>      </mx:SummaryRow>     </mx:GroupingField>     <mx:GroupingField name="Territory"/>    </mx:Grouping>   </mx:GroupingCollection>  </mx:dataProvider>  <mx:columns>   <mx:AdvancedDataGridColumn dataField="Region"/>   <mx:AdvancedDataGridColumn dataField="Territory_Rep"    headerText="Territory Rep"/>   <mx:AdvancedDataGridColumn dataField="Actual"/>   <mx:AdvancedDataGridColumn dataField="Estimate"/>   <mx:AdvancedDataGridColumn dataField="Min Actual"/>   <mx:AdvancedDataGridColumn dataField="Max Actual"/>   <mx:AdvancedDataGridColumn dataField="Min Estimate"/>   <mx:AdvancedDataGridColumn dataField="Max Estimate"/>  </mx:columns> </mx:AdvancedDataGrid></mx:Application>

运行示例

创建列分组

您可以使用列分组将多列归集到一个单一列表头下,如下所示:


在该示例中,您可以提供给数据表格以扁平数据,然后对Actual和Estimate列归组到一个单一的名称为Revenues的列中。

要在一个AdvancedDataGrid控件中进行列分组,您必须如下做:

  • 使用AdvancedDataGrid.groupedColumns属性而不是AdvancedDataGrid.columns属性来标识列。
  • 使用AdvancedDataGridColumnGroup来指定分组。

下面是前面示意图中的AdvancedDataGrid控件的代码实现:

<?xml version="1.0"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script>  <![CDATA[   import mx.collections.ArrayCollection;   include "SimpleFlatData.as";  ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG"  dataProvider="{dpFlat}"  width="100%" height="100%">  <mx:groupedColumns>   <mx:AdvancedDataGridColumn dataField="Region"/>   <mx:AdvancedDataGridColumn dataField="Territory"/>   <mx:AdvancedDataGridColumn dataField="Territory_Rep"    headerText="Territory Rep"/>   <mx:AdvancedDataGridColumnGroup headerText="Revenues">    <mx:AdvancedDataGridColumn dataField="Actual"/>    <mx:AdvancedDataGridColumn dataField="Estimate"/>   </mx:AdvancedDataGridColumnGroup>  </mx:groupedColumns> </mx:AdvancedDataGrid></mx:Application>

运行示例

groupedColumns属性包括AdvancedDataGridColumn类和AdvancedDataGridColumnGroup类的实例。AdvancedDataGridColumn类的实例在控件中显示为单独的一列。而所有在AdvancedDataGridColumnGroup实例中指定的列将作为已分组的列显示在一起。

您可以给控件添加多个分组,下面的示例增加名称为Area和Revenue的两个分组:

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script>  <![CDATA[   import mx.collections.ArrayCollection;   include "SimpleFlatData.as";  ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG"  dataProvider="{dpFlat}"  width="100%" height="100%">  <mx:groupedColumns>   <mx:AdvancedDataGridColumn dataField="Territory_Rep"    headerText="Territory Rep"/>   <mx:AdvancedDataGridColumnGroup headerText="Area">    <mx:AdvancedDataGridColumn dataField="Region"/>    <mx:AdvancedDataGridColumn dataField="Territory"/>   </mx:AdvancedDataGridColumnGroup>   <mx:AdvancedDataGridColumnGroup headerText="Revenues">    <mx:AdvancedDataGridColumn dataField="Actual"/>    <mx:AdvancedDataGridColumn dataField="Estimate"/>   </mx:AdvancedDataGridColumnGroup>  </mx:groupedColumns> </mx:AdvancedDataGrid></mx:Application>

运行示例


您还可以将分组嵌套以让一个分组列包含多个分组,如下所示:

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script>  <![CDATA[   import mx.collections.ArrayCollection;   include "SimpleFlatData.as";  ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG"  dataProvider="{dpFlat}"  width="100%" height="100%">  <mx:groupedColumns>   <mx:AdvancedDataGridColumn dataField="Territory_Rep"   headerText="Territory Rep"/>   <mx:AdvancedDataGridColumnGroup headerText="All Groups">    <mx:AdvancedDataGridColumnGroup headerText="Area">     <mx:AdvancedDataGridColumn dataField="Region"/>     <mx:AdvancedDataGridColumn dataField="Territory"/>    </mx:AdvancedDataGridColumnGroup>    <mx:AdvancedDataGridColumnGroup headerText="Revenues">     <mx:AdvancedDataGridColumn dataField="Actual"/>     <mx:AdvancedDataGridColumn dataField="Estimate"/>    </mx:AdvancedDataGridColumnGroup>   </mx:AdvancedDataGridColumnGroup>  </mx:groupedColumns> </mx:AdvancedDataGrid></mx:Application>

运行示例


在分组中拖放列

By default, you can drag the columns in a group within the group to reposition them. You can also drag the entire group to reposition it in the AdvancedDataGrid control. 默认情况下,您可以拖动分组中的各列以在分组中重新放置它们。您也可以拖动整个分组以在AdvancedDataGrid控件中重新放置它们。

要禁用某一分组中所有列的拖动,设置AdvancedDataGridColumnGroup.childrenDragEnabled属性为false。要禁用单个列的拖动,设置AdvancedDataGridColumn.dragEnabled属性为false。



原创粉丝点击