4D v16.3

SORT ARRAY

ホーム

 
4D v16.3
SORT ARRAY

SORT ARRAY 


 

SORT ARRAY ( array {; array2 ; ... ; arrayN}{; > または <} ) 
引数   説明
array  配列 in ソートする配列
> または <  演算子 in ">" : 昇順ソート, または "<" : 降順ソート, または 省略した場合降順ソート

説明   

SORT ARRAYコマンドは、1つまたは複数の配列を昇順や降順にソートします。

注:  Pointer 配列や Picture 配列のソートは行えません。二次元配列の要素(例えば a2DArray{$vlThisElem})をソートすることはできますが、二次元配列そのもの(a2DArray)をソートすることはできません。

最後の引数は、ソートの昇順または降順を指定します。引数に大なり記号(>)を指定すると昇順にソートします。引数に小なり記号(<)を指定すると降順にソートします。省略した場合は昇順にソートします。

複数の配列を指定した場合、すべての配列が最初の配列の順番でソートされます。各配列ごとに個々にソートするわけではありません。その代り、同期した配列をソートしたい場合には MULTI SORT ARRAY コマンドを使用することができます。

以下の例は2つの配列を作成し、companyでソートします:

 ALL RECORDS([People])
 SELECTION TO ARRAY([People]Name;asNames;[People]Company;asCompanies)
 SORT ARRAY(asCompanies;asNames;>)

しかし、SORT ARRAY コマンドはマルチレベルソートを行わないため、会社ごとの従業員名の順序はばらばらのままです。各会社毎に従業員名をソートするには、次のようにします:

 ALL RECORDS([People])
 ORDER BY([People];[People]Company;>;[People]Name;>)
 SELECTION TO ARRAY([People]Name;asNames;[People]Company;asCompanies)

次の例では、[People]テーブルから名前をフローティングウィンドウに表示します。ウィンドウ上のボタンをクリックすると、名前のリストをAからZへ、またはZからAへソートします。同じ名前の人が複数存在するため、インデックス付きで重複不可である[People]ID numberフィールドを使用できます。名前のリストをクリックすると、クリックした名前を持つレコードを取得します。同期がとられ、表示されないalIDs配列を利用することにより、必ずクリックした名前に対応するレコードにアクセスできます:

  ` asNames配列オブジェクトメソッド
 Case of
    :(Form event=On Load)
       ALL RECORDS([People])
       SELECTION TO ARRAY([People]Name;asNames;[People]ID number;alIDs)
       SORT ARRAY(asNames;alIDs;>)
    :(Form event=On Unload)
       CLEAR VARIABLE(asNames)
       CLEAR VARIABLE(alIDs)
    :(Form event=On Clicked)
       If(asNames#0)
  ` 正しいレコードを取得するためにalIDsを使用する
          QUERY([People];[People]ID Number=alIDs{asNames})
  ` レコードの処理を行う
       End if
 End case
 
  ` bA2Z ボタンオブジェクトメソッド
  ` 配列を昇順でソートし、かつ同期を保つ
 SORT ARRAY(asNames;alIDs;>)
 
  ` bZ2A ボタンオブジェクトメソッド
  ` 配列を降順でソートし、かつ同期を保つ
 SORT ARRAY(asNames;alIDs;<)



参照 

Find in sorted array
MULTI SORT ARRAY
ORDER BY
SELECTION TO ARRAY

 
プロパティ 

プロダクト: 4D
テーマ: 配列
番号: 229

This command can be run in preemptive processes

 
履歴 

初出: < 4D v6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)