//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.collections { /** * The SummaryField2 class represents a single property in a SummaryRow instance. * Each SummaryRow instance specifies one or more SummayField2 instances * that are used to create a data summary. * *

Note: In the previous release of Flex, you used the SummaryField class * to create summary data. * The SummaryField2 class is new for Flex 4 and provides better performance than SummaryField.

* *

Use the dataField property to specify the data field used to generate the summary, * the label property to specify the name of the data field created to hold the summary data, * and the summaryOperation property to specify how to create the summary for numeric fields. * You can specify one of the following values: * SUM, MIN, MAX, AVG, or COUNT.

* Or you can specify an ISummaryCalculator implementation to calculate the summaries. * *

The following example creates summary rows based on two fields of the data provider * of the AdvancedDataGrid control:

* *
 *  <mx:AdvancedDataGrid id="myADG" 
 *    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:SummaryField2 dataField="Actual" 
 *                    label="Min Actual" summaryOperation="MIN"/>
 *                  <mx:SummaryField2 dataField="Actual" 
 *                    label="Max Actual" summaryOperation="MAX"/>
 *                </mx:fields>
 *              </mx:SummaryRow>
 *            </mx:summaries>
 *          </mx:GroupingField>
 *          <mx:GroupingField name="Territory">
 *            <mx:summaries>
 *              <mx:SummaryRow summaryPlacement="group">
 *                <mx:fields>
 *                  <mx:SummaryField2 dataField="Actual" 
 *                    label="Min Actual" summaryOperation="MIN"/>
 *                  <mx:SummaryField2 dataField="Actual" 
 *                    label="Max Actual" summaryOperation="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>
 *  
* * @mxml * * The <mx.SummaryField2> inherits all the tag attributes of its superclass, * and defines the following tag attributes:

* *
 *  <mx:SummaryField2
 *  Properties 
 *    dataField="No default"
 *    label="No default"
 *    summaryOperation="SUM"
 *  />
 *  
* * @see mx.controls.AdvancedDataGrid * @see mx.collections.GroupingField * @see mx.collections.SummaryRow * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public class SummaryField2 { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param dataField Data field for which the summary is computed. * * @param summaryOperation The function that should be performed on the children. * You can specify one of the following values for numeric fields: * SUM, MIN, MAX, AVG, or COUNT. * Or you can specify an ISummaryCalculator implementation to calculate the summaries. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public function SummaryField2(dataField:String = null, summaryOperation:Object = "SUM") { super(); this.dataField = dataField; this.summaryOperation = summaryOperation; } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // dataField //---------------------------------- /** * Data field for which the summary is computed. * * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public var dataField:String; //---------------------------------- // label //---------------------------------- /** * The property used inside the summary object, * an instance of the SummaryObject class, to * hold summary information. * *

For example, if you set the label property to "Summary", * then the computed summary is placed in a property named "Summary" * in the summary object. The property of the SummaryObject instance * containing the summary data will appear as below:

* *
{Summary:1000}
* * @see mx.collections.SummaryObject * @see mx.collections.SummaryRow#summaryObjectFunction * @see #summaryFunction * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public var label:String; /** * The summary performed on the children. * The value of this property can be one of the following: * * * * @default SUM * @see mx.collections.ISummaryCalculator * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public var summaryOperation:Object = "SUM"; } }