//////////////////////////////////////////////////////////////////////////////// // // 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 { //-------------------------------------- // Other metadata //-------------------------------------- [DefaultProperty("fields")] /** * The SummaryRow class represents a summary row of the AdvancedDataGrid. * You create summary data about your data groups by using the summaries property * of the GroupingField or GroupingCollection class. * You display the summary data in an existing row of the AdvancedDataGrid control, * or display it in a separate row. * *

The summaries property of the GroupingField or GroupingCollection class takes an * instance of the SummaryRow class. You then use the fields property * of the SummaryRow class to specify an Array of one or more SummaryField/SummaryField2 instances * that define the fields of the data used to create the summary. * SummaryField2 needs to be used when using GroupingCollection2.

* *

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: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>
 *  
* * @mxml * * The <mx.SummaryRow> tag defines the following tag attributes:

* *
 *  <mx:SummaryRow
 *  Properties 
 *    fields="No default"
 *    summaryObjectFunction="No default"
 *    summaryPlacement="last"
 *  />
 *  
* * @see mx.controls.AdvancedDataGrid * @see mx.collections.GroupingField * @see mx.collections.SummaryField * @see mx.collections.SummaryField2 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class SummaryRow { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function SummaryRow() { super(); } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // fields //---------------------------------- /** * Array of SummaryField/SummaryField2 instances that define the characteristics of the * data fields used to create the summary. * * @see mx.collections.SummaryField * @see mx.collections.SummaryField2 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var fields:Array; //---------------------------------- // summaryPlacement //---------------------------------- /** * Specifies where the summary row appears in the AdvancedDataGrid control. * Possible values are: * * * *

You can specify multiple values, separated by a space. * For example, a value of "last group" shows the same summary row * at the group level and in the last row of the children.

* * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var summaryPlacement:String = "last"; //---------------------------------- // summaryObjectFunction //---------------------------------- /** * Specifies a callback function that defines the summary object, * which is an instance of the SummaryObject class. * The SummaryObject instance collects summary data for display in the * AdvancedDataGrid control. * The AdvancedDataGrid control adds the SummaryObject instance to the * data provider to display the summary data in the control. * Therefore, define within the SummaryObject instance the properties that you want to display. * *

You use this property with the SummaryField.summaryFunction property, * which defines a callback function to perform the summary calculation.

* *

The GroupingCollection class adds a property called children to the Object.

* *

The callback function must have the following signature:

* *
function mySumObjFunc():SummaryObject {}
* * @see mx.collections.SummaryObject * @see mx.collections.SummaryField#summaryFunction * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var summaryObjectFunction:Function; } }