関数索引
sort() 関数は、与えられた列を指定された方法でソート(並べ換え)した結果を返します。
この関数は wr-for などで繰り返しを表現する時に、繰り返しの順序を指定したい時などに利用します。
ソートしたい目次または配列要素を指定します。ここで指定した目次または配列要素を並べ換えた結果が sort 関数の戻値となります。
ソート順:"A" または "D" を指定します。"A" を指定した場合、昇順(小さい順)にソートされます。 "D" を指定した場合には降順(大きい順)にソートされます。
ソートキー1, ソートキー2, ... ソートキーN:並びを決める要素名(ソートキー)を指定します。ソートキーは複数指定することができます。
「ソートされる列」に目次を指定した場合には、各ソートキーには、目次が参照しているページに含まれる要素の名前を指定します。
「ソートされる列」に、繰り返しのある「グループ項目」を指定した場合、各ソートキーには、そのグループ項目に含まれる要素の名前を指定します。
「ソートされる列」に繰り返しのあるグループ項目以外の要素を指定した場合には、ソートキーは指定できません。この場合、その要素自身の値によってソートが行なわれます。
ソートを行なうときには、まず、 ソートキー1 に指定された要素で順序が決められますが、ソートキー1 の値が同じでそれだけでは順序が決められない場合には、ソートキー2 の値によって順序を決めます。指定されたソートキーのいずれも同じ値で、順序を決められない場合、それらの要素の順序は不定(定まらない)となります。
ニュース目次に掲載されているニュース記事を、その記事の「リリース日」と「リリース時刻」の新しい順に表示します。「リリース日」が同じ記事については「リリース時刻」の新しい順に表示します。「リリース日」も「リリース時刻」も同じ記事については、表示順序は不定です。
目次に掲載されている各ページは要素「リリース日」と「リリース時刻」を持っているものとします。
<wr-for list="sort(ニュース目次, \"D\", \"リリース日\", \"リリース時刻\")"
variable="aNews">
....
</wr-for>
目次タイプの要素には、その目次へのページの掲載順序を指定することができますが、この例のように目次に対して sort() 関数を使用した場合は、要素での掲載順序より sort() 関数に指定された並べ替えのルールが優先されます。sort() 関数が、目次に掲載されているページの順序を sort() 関数のパラメタの指定に従って並べ替えるからです。
繰り返しの指定あるグループ要素「商品データ」に含まれるデータを、価格の安い順に10件だけ表示します。sort により並べ換えたデータを head() 関数によって先頭を切り出しています。
グループ要素「商品データ」は要素「価格」を持っているとします。
<wr-for list="head(sort(商品データ, \"A\", \"価格\"), 10)" variable="p">
....
<tr><td>%p.商品名%</td><td>%p.価格%</td></tr>
....
</wr-for>
テンプレートに、ソートキーを指定するためのラジオボタンなどを定義しておけばソートキーをページ作成時に指定することも可能です。