| パッケージ | mx.collections |
| クラス | public class Grouping |
| 継承 | Grouping Object |
| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
グループ化されたデータを AdvancedDataGrid コントロールに格納するには、フラットデータから GroupingCollection クラスのインスタンスを作成し、その GroupingCollection インスタンスを AdvancedDataGrid コントロールのデータプロバイダーに渡します。 フラットデータのグループ化フィールドを指定するには、Grouping インスタンスを GroupingCollection.grouping プロパティに渡します。 Grouping インスタンスには、GroupingField インスタンスの配列が含まれます。配列内の GroupingField インスタンスはグループ化フィールドごとに 1 つずつ存在します。
次の例では、Grouping クラスを使用して Region と Territory という 2 つのグループ化フィールドを定義しています。
<mx:AdvancedDataGrid id="myADG"
<mx:dataProvider>
<mx:GroupingCollection id="gc" source="{dpFlat}">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="Region"/>
<mx:GroupingField name="Territory"/>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="Region"/>
<mx:AdvancedDataGridColumn dataField="Territory"/>
<mx:AdvancedDataGridColumn dataField="Territory_Rep"/>
<mx:AdvancedDataGridColumn dataField="Actual"/>
<mx:AdvancedDataGridColumn dataField="Estimate"/>
</mx:columns>
</mx:AdvancedDataGrid>
MXML シンタックス
MXML シンタックスを隠す<mx.Grouping> tag defines the following tag attributes:
<mx:Grouping
Properties
compareFunction="No default"
fields="null"
groupingObjectFunction="No default"
label="GroupLabel"
/>
デフォルトの MXML プロパティfields
関連する API エレメント
| プロパティ | 定義元 | ||
|---|---|---|---|
| compareFunction : Function
ソート時にアイテムを比較するために使用するメソッドです。 | Grouping | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | |
| fields : Array
データのグループ化に使用するフィールドを指定する GroupingField オブジェクトの配列です。 | Grouping | ||
| groupingObjectFunction : Function
グループ化オブジェクトを決定するために、各グループノードで実行されるコールバック関数です。 | Grouping | ||
| label : String = "GroupLabel"
階層を作成するためにフラットデータに追加されるフィールドの名前です。 | Grouping | ||
| メソッド | 定義元 | ||
|---|---|---|---|
Grouping()
コンストラクターです。 | Grouping | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() |
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
compareFunction | プロパティ |
compareFunction:Function| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
ソート時にアイテムを比較するために使用するメソッドです。 このプロパティを指定すると、このクラスで使用する SortField オブジェクトに指定した compareFunction プロパティはすべて無視されます。
比較関数には次のシグネチャが必要です。
function [name](a:Object, b:Object, fields:Array=null):int
この関数は、以下を返す必要があります。
aがbの前に現れるソート順の場合は -1 です。aがbと等しい場合は 0 です。aがbの後に表示されるソート順の場合は 1 です。
内部比較関数に戻すには、この値を null に設定します。
fields 配列は、比較するオブジェクトフィールドを指定します。 通常は、フィールドリストを使い果たすか、ゼロではない値が返されるまで、このアルゴリズムはプロパティを比較します。 次に実際の使用例を示します。
function myCompare(a:Object, b:Object, fields:Array=null):int
{
var result:int = 0;
var i:int = 0;
var propList:Array = fields ? fields : internalPropList;
var len:int = propList.length;
var propName:String;
while (result == 0 && (i < len))
{
propName = propList[i];
result = compareValues(a[propName], b[propName]);
i++;
}
return result;
}
function compareValues(a:Object, b:Object):int
{
if (a == null && b == null)
return 0;
if (a == null)
return 1;
if (b == null)
return -1;
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
}
デフォルト値は、ストリング、数値、日付を比較できる内部比較関数です。この比較関数では、昇順または降順での比較が可能で、ストリングの比較に関しては大文字と小文字の区別の有無を指定できます。 カスタム比較アルゴリズムが必要な場合にのみ、独自の関数を指定します。 このことは、通常、計算フィールドが表示で使用される場合にのみ該当します。
また、SortField クラスの compare プロパティを使用することで、各ソートフィールドに対して個別の比較関数を指定することもできます。 こうすれば、一部のフィールドにデフォルトの比較関数を適用し、別のフィールドには独自の比較関数を適用することが可能となります。
実装
public function get compareFunction():Function public function set compareFunction(value:Function):voidfields | プロパティ |
fields:Array| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
データのグループ化に使用するフィールドを指定する GroupingField オブジェクトの配列です。 配列内の GroupingField オブジェクトの順序によって、ソート時のフィールドの優先順位が決まります。
デフォルト値: null。
実装
public function get fields():Array public function set fields(value:Array):void関連する API エレメント
groupingObjectFunction | プロパティ |
public var groupingObjectFunction:Function| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
グループ化オブジェクトを決定するために、各グループノードで実行されるコールバック関数です。 デフォルトでは、新しいオブジェクトはグループノード用に作成されます。
グループノードに適切なオブジェクトを提供する groupingObjectFunction を指定できます。
メソッドシグネチャは次のとおりです。
myGroupObjectFunction(label:String):Object
ここで、label には、そのグループノードについて表示される値が含まれます。 戻り値は、グループノードに使用されるオブジェクトです。
groupingObjectFunction は次のようになります。
private function groupObjFunction(label:String):Object
{
var obj:Object = {};
obj.name = "Bob";
return obj;
}
label | プロパティ |
public var label:String = "GroupLabel"| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
階層を作成するためにフラットデータに追加されるフィールドの名前です。 各グループの最上位ノード(グループフィールドを表すノード)の値が、このプロパティで表されます。 このプロパティを使用して、異なる名前を指定します。
デフォルト値: GroupLabel。
Grouping | () | コンストラクター |
public function Grouping()| 言語バージョン: | ActionScript 3.0 |
| 製品バージョン: | Flex 3 |
| ランタイムバージョン: | Flash Player 9, AIR 1.1 |
コンストラクターです。
Tue Jun 12 2018, 10:34 AM Z
MXML シンタックスを表示