SORT ARRAY

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 3


SORT ARRAY (array{; array2; ...; arrayN}{; > または <})

引数説明
array配列ソートする配列
> または <> : 昇順ソート, または
< : 降順ソート, または
省略した場合降順ソート

説明

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

Note: ポインタ配列やピクチャ配列のソートは行えません。2 次元配列の要素(例えばa2DArray{$vlThisElem})をソートすることはできますが、2次元配列そのもの(a2DArray)をソートすることはできません。

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

複数の配列を指定した場合、すべての配列が最初の配列の順番でソートされます。各配列ごとに個々にソートするわけではありません。この機能は、フォーム上のグループ化されたスクロールエリアを扱う場合に特に有用です。SORT ARRAYコマンドはスクロールエリアを構成する配列の同期を維持します。

例題

1. 以下の例は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)

2. 次の例では、[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;<)

参照

MULTI SORT ARRAY, ORDER BY, SELECTION TO ARRAY.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次