高度なカスタマイズ > Info*Engine ユーザーガイド > Task Webject リファレンス > Group Webject > Sort-Group
  
Sort-Group
説明
1 つまたは複数の属性によってオブジェクトのグループの情報を並べ替えます。たとえば、従業員の名前、番号、および給与を含むグループで、Sort-Group Webject を使用し、名前、番号、および給与のいずれか 1 つの属性を基準とするか、これら 3 つの属性のいずれか 2 つ、またはすべてを基準として、情報が英数字順に並べ替えられるように指定できます。
構文
<ie:webject name="Sort-Group" type="GRP">
  <ie:param name="GROUP_IN" data="input_group_name"/>
  <ie:param name="SORTBY" data="attribute"/>
  <ie:param name="SORTED" data="[ASC | DESC]"/>
  <ie:param name="COMPARISON" data="[ALPHA | NUMERIC]"/>
  <ie:param name="CASE_IGNORE" data="[TRUE | FALSE]"/>
  <ie:param name="CLASS" data="class"/>
  <ie:param name="GROUP_OUT" data="output_group_name"/>
</ie:webject>
パラメータ
必須
選択
オプション
GROUP_IN
CASE_IGNORE
GROUP_OUT
CLASS
SORTBY
COMPARISON
SORTED
CASE_IGNORE
大文字と小文字のフラグとして機能します。TRUE を指定すると、大文字と小文字は無視されます。FALSE を指定すると、大文字と小文字は区別されます。このパラメータのデフォルトは FALSE です。このパラメータには複数の値を指定できます。このパラメータはオプションです。
CLASS
GROUP_OUT パラメータによって指定された出力グループに含まれているオブジェクトのタイプを指定します。たとえば、Webject が CLASS=MyClassNameGROUP_OUT=data_1 を指定する場合、出力グループの XML 表現には以下のタグが含まれます。
<MyClassName NAME="data_1" TYPE="Object" STATUS="0">
</MyClassName>
このパラメータのデフォルトは、Unknown-Class-Name です。このパラメータはオプションです。
COMPARISON
属性値の比較方法を指定します。英数字を比較する ALPHA と数字を厳密に比較する NUMERIC があります。このパラメータのデフォルトは ALPHA です。このパラメータには複数の値を指定できます。このパラメータはオプションです。
GROUP_IN
並べ替えるグループを指定します。このパラメータは必須です。
GROUP_OUT
並べ替えたグループの名前を指定します。このパラメータは必須です。
SORTBY
並べ替えに使用するフィールドまたは列名を識別します。すべての数字と文字を昇順に並べ替える前、およびすべての数字と文字を降順に並べ替えた後に、NULL 値を並べ替えることに注意してください。
このパラメータには複数の値を指定できます。SORTED、COMPARISON、または CASE_IGNORE に指定されている値の数よりも SORTBY に指定されている値の数の方が多い場合、SORTED、COMPARISON、または CASE_IGNORE に指定されている最後の値が、残りの SORTBY の値に対して使用されます。このパラメータは必須です。
SORTED
2 つのグループの出力順を指示する方法を説明します。昇順に出力するには ASC、降順に出力するには DESC を指定します。このパラメータのデフォルトは ASC です。このパラメータには複数の値を指定できます。このパラメータはオプションです。
例: 単一の列で並べ替え
次の例は、"createdgroup" というグループの要素を名前で並べ替えます。アルファベット順、昇順、そして大文字と小文字を区別しないという条件で行います。結果を "results" というグループに出力します。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie"%>
<!-- Sort the elements in a group. -->
<ie:task uri="com/company/CreateGroup.xml"/>
<ie:webject name="Sort-Group" type="GRP">
  <ie:param name="GROUP_IN" data="createdgroup"/>
  <ie:param name="SORTBY" data="NAME"/>
  <ie:param name="CASE_IGNORE" data="TRUE"/>
  <ie:param name="COMPARISON" data="ALPHA"/>
  <ie:param name="SORTED" data="ASC"/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
例: 複数の列で並べ替え
ここでは、複数の列を条件にして並べ替えを行う Sort-Group Webject の例を見てみましょう。
まず、従業員の姓と所属する部門の番号を含むグループが作成されます。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie"%>
<ie:webject name="Create-Group" type="GRP">
  <ie:param name="ELEMENT" data="DEPT=300:NAME=Smith"/>
  <ie:param name="ELEMENT" data="DEPT=300:NAME=Johnson"/>
  <ie:param name="ELEMENT" data="DEPT=200:NAME=Reilly"/>
  <ie:param name="ELEMENT" data="DEPT=100:NAME=Sinclair"/>
  <ie:param name="ELEMENT" data="DEPT=300:NAME=Michaels"/>
  <ie:param name="ELEMENT" data="DEPT=500:NAME=King"/>
  <ie:param name="GROUP_OUT" data="employees"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP"/>
結果として生成される "employees" という名前の出力グループが以下の形式で表示されます。
DEPT
NAME
300
Smith
300
Johnson
200
Reilly
100
Sinclair
300
Michaels
500
King
次に、employees グループは、部門番号を基準として昇順に並べ替えられます。
<ie:webject name="Sort-Group" type="GRP">
  <ie:param name="GROUP_IN" data="employees"/>
  <ie:param name="SORTBY" data="DEPT"/>
  <ie:param name="SORTED" data="ASC"/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP"/>
その結果、"results" という名前のグループが以下の形式で表示されます。
DEPT
NAME
100
Sinclair
200
Reilly
300
Smith
300
Johnson
300
Michaels
500
King
* 
部門 300 には複数の従業員が属していますが、それらの従業員の名前は特定の順番で並べられているわけではありません。
次に、employees グループは、部門番号と名前を基準として昇順に並べ替えられます。
<ie:webject name="Sort-Group" type="GRP">
  <ie:param name="GROUP_IN" data="employees"/>
  <ie:param name="SORTBY" data="DEPT,NAME" delim=","/>
  <ie:param name="SORTED" data="ASC"/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP"/>
その結果、"results" という名前のグループが以下の形式で表示されます。
DEPT
NAME
100
Sinclair
200
Reilly
300
Johnson
300
Michaels
300
Smith
500
King
* 
今度は、部門 300 の従業員名が、アルファベットの昇順で並んでいます。
次に、employees グループは、部門番号を基準として昇順に、そして名前を基準として降順に並べ替えられます。
<ie:webject name="Sort-Group" type="GRP">
  <ie:param name="GROUP_IN" data="employees"/>
  <ie:param name="SORTBY" data="DEPT,NAME" delim=","/>
  <ie:param name="SORTED" data="ASC,DESC" delim=","/>
  <ie:param name="GROUP_OUT" data="results"/>
</ie:webject>
<ie:webject name="Display-Table" type="DSP"/>
その結果、"results" という名前のグループが以下の形式で表示されます。
DEPT
NAME
100
Sinclair
200
Reilly
300
Smith
300
Michaels
300
Johnson
500
King
* 
今度は、部門 300 の従業員名が、アルファベットの降順で一覧表示されています。