Flex 3 发现之旅:AdvancedDataGrid的使用(第三部分)
2008-11-06 09:50
501 查看
继续第二部分,我们继续来讲AdvancedDataGrid的使用。
创建汇总行
您可以使用GroupingField类的summaries属性来创建分组数据的汇总数据,然后您可以将汇总数据与原来数据显示同一行中,也可以将其显示在单独一行中。
以下示例中,AdvancedDataGrid控件显示了两个汇总字段,Min Actual和Max Actual:
![](http://blog.eshangrao.com/images/flex/moxie/sumDg.jpg)
顶部行的Min Actual和Max Actual字段对应分组中所有行的汇总,而每个Territory的Min Actual和Max Actual字段对应该Territory子组中所有行的汇总。
以下是实际代码:
运行示例
注意在该示例中,我们将GroupingField.summaries属性指定为SummaryRow实例。SummaryRow包含数据汇总的所有信息。例如,我们使用SummaryRow的summaryPlacement属性来将汇总数据添加到分组数据中。可选的,您也可以增加一个新行来存放汇总数据。更多信息请查看“指定汇总数据存放位置“。
每个SummaryRow实例指定一个或多个用来创建数据汇总的SummayField实例。例如,您可以使用SummayField的dataField属性来指定对Actual数据字段进行汇总,label属性用于指明存放汇总数据的数据字段的名称,而operation属性用于指定如何对数值字段几行汇总,您可以使用以下任一值:SUM、MIN、 MAX、AVG或COUNT。
加上了新的合计数据字段,在组件内部,代表分组数据的GroupingCollection其内容如下所示:
使用GroupingField和SummaryRow类的缺省属性
GroupingField.summaries属性是GroupingField的缺省属性,而SummaryRow.fields属性是 SummaryRow类的缺省属性;因此,您可以在您的代码中省略这些属性而重写前面的示例,如下所示:
指定汇总数据存放位置
SummaryRow类包含一个summaryPlacement属性用于决定在AdvancedDataGrid控件的那里显示汇总数据。summaryPlacement属性允许的值如下:
first 在分组的第一行创建汇总行。
last 在分组的最后一行创建汇总行。
group 将合计数据添加到对应的分组中。
在前面的“创建汇总中”小节中的示例已经演示了通过指定summaryPlacement属性值为group来将汇总数据添加到分组中。以下示例,使用相同的分组数据但是其summaryPlacement属性设置的是last:
![](http://blog.eshangrao.com/images/flex/sumDg2.jpg)
您可以指定多个值给summaryPlacement属性,通过空格分隔,例如,指定“last group”这样的值表示同时在分组级别和分组的末行显示汇总数据。
这样,加上了新的合计数据字段,在组件内部,代表分组数据的GroupingCollection其内容如下所示:
注意,在整个组中添加了一个新行用于存放汇总数据,而且每个子组都添加了一个新行用于存放子组的汇总数据。
创建汇总行
您可以使用GroupingField类的summaries属性来创建分组数据的汇总数据,然后您可以将汇总数据与原来数据显示同一行中,也可以将其显示在单独一行中。
以下示例中,AdvancedDataGrid控件显示了两个汇总字段,Min Actual和Max Actual:
![](http://blog.eshangrao.com/images/flex/moxie/sumDg.jpg)
顶部行的Min Actual和Max Actual字段对应分组中所有行的汇总,而每个Territory的Min Actual和Max Actual字段对应该Territory子组中所有行的汇总。
以下是实际代码:
<?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" width="100%" height="100%" initialize="gc.refresh();"> <mx:dataProvider> <mx:GroupingCollection id="gc" source="{dpFlat}"> <mx:Grouping> <mx:GroupingField name="Region"> <mx:summaries> <mx:SummaryRow summaryPlacement="group"> <mx:fields> <mx:SummaryField dataField="Actual" label="Min Actual" operation="MIN"/> <mx:SummaryField dataField="Actual" label="Max Actual" operation="MAX"/> </mx:fields> </mx:SummaryRow> </mx:summaries> </mx:GroupingField> <mx:GroupingField name="Territory"> <mx:summaries> <mx:SummaryRow summaryPlacement="group"> <mx:fields> <mx:SummaryField dataField="Actual" label="Min Actual" operation="MIN"/> <mx:SummaryField dataField="Actual" label="Max Actual" operation="MAX"/> </mx:fields> </mx:SummaryRow> </mx:summaries> </mx:GroupingField> </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:columns> </mx:AdvancedDataGrid> </mx:Application>
运行示例
注意在该示例中,我们将GroupingField.summaries属性指定为SummaryRow实例。SummaryRow包含数据汇总的所有信息。例如,我们使用SummaryRow的summaryPlacement属性来将汇总数据添加到分组数据中。可选的,您也可以增加一个新行来存放汇总数据。更多信息请查看“指定汇总数据存放位置“。
每个SummaryRow实例指定一个或多个用来创建数据汇总的SummayField实例。例如,您可以使用SummayField的dataField属性来指定对Actual数据字段进行汇总,label属性用于指明存放汇总数据的数据字段的名称,而operation属性用于指定如何对数值字段几行汇总,您可以使用以下任一值:SUM、MIN、 MAX、AVG或COUNT。
加上了新的合计数据字段,在组件内部,代表分组数据的GroupingCollection其内容如下所示:
[{GroupLabel:"Southwest", Max Actual:55498, Min Actual:29134, children:[ {GroupLabel:"Arizona", Max Actual:38865, Min Actual:29885, children:[ {Region:"Southwest", Territory:"Arizona", Territory_Rep:"Barbara Jennings", Actual:38865, Estimate:40000}, {Region:"Southwest", Territory:"Arizona", Territory_Rep:"Dana Binn", Actual:29885, Estimate:30000}]} {GroupLabel:"Central California", Max Actual:29134, Min Actual:29134,children:[ {Region:"Southwest", Territory:"Central California", Territory_Rep:"Joe Smith", Actual:29134, Estimate:30000}]} {GroupLabel:"Nevada", Max Actual:52888, Min Actual:52888, children:[ {Region:"Southwest", Territory:"Nevada", Territory_Rep:"Bethany Pittman", Actual:52888, Estimate:45000}]} {GroupLabel:"Northern California", Max Actual:55498, Min Actual:38805,children:[ {Region:"Southwest", Territory:"Northern California", Territory_Rep:"Lauren Ipsum", Actual:38805, Estimate:40000}, {Region:"Southwest", Territory:"Northern California", Territory_Rep:"T.R. Smith", Actual:55498, Estimate:40000}]} {GroupLabel:"Southern California", Max Actual:44985, Min Actual:44913,children:[ {Region:"Southwest", Territory:"Southern California", Territory_Rep:"Alice Treu", Actual:44985, Estimate:45000}, {Region:"Southwest", Territory:"Southern California", Territory_Rep:"Jane Grove", Actual:44913, Estimate:45000}]} ]}]
使用GroupingField和SummaryRow类的缺省属性
GroupingField.summaries属性是GroupingField的缺省属性,而SummaryRow.fields属性是 SummaryRow类的缺省属性;因此,您可以在您的代码中省略这些属性而重写前面的示例,如下所示:
<?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" 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:GroupingField> <mx:GroupingField name="Territory"> <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:GroupingField> </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:columns> </mx:AdvancedDataGrid> </mx:Application>
指定汇总数据存放位置
SummaryRow类包含一个summaryPlacement属性用于决定在AdvancedDataGrid控件的那里显示汇总数据。summaryPlacement属性允许的值如下:
first 在分组的第一行创建汇总行。
last 在分组的最后一行创建汇总行。
group 将合计数据添加到对应的分组中。
在前面的“创建汇总中”小节中的示例已经演示了通过指定summaryPlacement属性值为group来将汇总数据添加到分组中。以下示例,使用相同的分组数据但是其summaryPlacement属性设置的是last:
![](http://blog.eshangrao.com/images/flex/sumDg2.jpg)
您可以指定多个值给summaryPlacement属性,通过空格分隔,例如,指定“last group”这样的值表示同时在分组级别和分组的末行显示汇总数据。
这样,加上了新的合计数据字段,在组件内部,代表分组数据的GroupingCollection其内容如下所示:
[{GroupLabel:"Southwest", children:[ {GroupLabel:"Arizona", children:[ {Region:"Southwest", Territory:"Arizona", Territory_Rep:"Barbara Jennings", Actual:38865, Estimate:40000}, {Region:"Southwest", Territory:"Arizona", Territory_Rep:"Dana Binn", Actual:29885, Estimate:30000}, {Max Actual:38865, Min Actual:29885}]} {GroupLabel:"Central California", children:[ {Region:"Southwest", Territory:"Central California", Territory_Rep:"Joe Smith", Actual:29134, Estimate:30000}, {Max Actual:29134, Min Actual:29134}]} {GroupLabel:"Nevada", children:[ {Region:"Southwest", Territory:"Nevada", Territory_Rep:"Bethany Pittman", Actual:52888, Estimate:45000}, {Max Actual:52888, Min Actual:52888}]} {GroupLabel:"Northern California", children:[ {Region:"Southwest", Territory:"Northern California", Territory_Rep:"Lauren Ipsum", Actual:38805, Estimate:40000}, {Region:"Southwest", Territory:"Northern California", Territory_Rep:"T.R. Smith", Actual:55498, Estimate:40000}, {Max Actual:55498, Min Actual:38805}]} {GroupLabel:"Southern California", children:[ {Region:"Southwest", Territory:"Southern California", Territory_Rep:"Alice Treu", Actual:44985, Estimate:45000}, {Region:"Southwest", Territory:"Southern California", Territory_Rep:"Jane Grove", Actual:44913, Estimate:45000}, {Max Actual:44985, Min Actual:44913}]} {Max Actual:55498, Min Actual:29134} ]}]
注意,在整个组中添加了一个新行用于存放汇总数据,而且每个子组都添加了一个新行用于存放子组的汇总数据。
相关文章推荐
- Flex 3 发现之旅:AdvancedDataGrid的使用(第三部分)续1
- Flex 3 发现之旅:AdvancedDataGrid的使用(第三部分)续2
- Flex 3 发现之旅:AdvancedDataGrid的使用(第二部分)续2
- Flex 3 发现之旅:AdvancedDataGrid的使用(第四部分)
- Flex 3 发现之旅:AdvancedDataGrid的使用(第二部分)
- Flex 3 发现之旅:AdvancedDataGrid的使用(第二部分)续1
- Flex 3 发现之旅:AdvancedDataGrid的使用(第一部分)
- Flex 3 发现之旅:AdvancedDataGrid的使用
- Flex 3 体验:AdvancedDataGrid的使用(第二部分)
- Flex开发小结(1)如何使用AdvancedDataGrid
- Flex 3 AdvancedDataGrid的使用(二)
- Flex 3 advancedDataGrid的使用(一)
- Flex 3 AdvancedDataGrid的使用(八)
- Flex 3 AdvancedDataGrid的使用(二)
- Flex 3 AdvancedDataGrid的使用(八)
- Silverlight教程第三部分:使用 Networking取回数据并填充DataGrid
- flex AdvancedDataGrid使用心得
- Flex 3 AdvancedDataGrid的使用(三)
- flex 使用AdvancedDataGrid进行表头列合并,设置每列背景颜色(2)
- Silverlight教程第三部分:使用 Networking取回数据并填充DataGrid