高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine データ管理 > Info*Engine によるグループの管理と操作 > いくつかのグループの操作と結果として生成されるグループの表示
  
いくつかのグループの操作と結果として生成されるグループの表示
このシナリオでは、前述の従業員の例を展開して、2 つの異なる部門に属する従業員の 1 つのリストを取得する方法を示します。以下の例は、社内の営業部員と開発部員を結合します。各部門は社内でデータベース内の別々の場所に従業員リストを保管していると想定します。このシナリオでは、両方の場所から従業員の情報を取得し、1 つの従業員リストに見えるように結合します。
まず、従業員の情報をデータベースに照会する JSP ページを作成します。最初に、前述の基本グループの作成と表示のシナリオで示したような Task Webject をこのページに追加できます。この Task Webject は salesemp テーブル内に定義されている従業員を検索します。ここで、devemp テーブルの情報を照会する別の Webject を追加できます。たとえば、以下のような Query-Objects Webject をページに追加できます。
<ie:webject name="Query-Objects" type="OBJ">
  <ie:param name="INSTANCE"  data="com.myHost.Adapter"/>
  <ie:param name="CLASS"     data="salesemp"/>
  <ie:param name="WHERE"     data="()"/>
  <ie:param name="GROUP_OUT" data="sales"/>
</ie:webject>
<ie:webject name="Query-Objects" type="OBJ">
  <ie:param name="INSTANCE"  data="com.myHost.Adapter"/>
  <ie:param name="CLASS"     data="devemp"/>
  <ie:param name="WHERE"     data="()"/>
  <ie:param name="GROUP_OUT" data="development"/>
</ie:webject>
最初の Query-Objects Webject では、CLASS パラメータ内で salesemp テーブル名を使用して営業部員のデータベーステーブルから従業員の情報を要求します。明確に言うと、営業部のすべての従業員に関する情報を要求します。照会の結果は、sales というグループとして VDB に保存されます。sales グループは以下の表のように考えることができます。
ename
phone
department
title
Burton, Jack
873-2302
営業
Sales Representative
Law, Gracie
873-2200
営業
Sales Manager
LoPan, David
873-3313
営業
Administrative Assistant
2 番目の Query-Objects Webject もデータベースから情報を要求しますが、この場合は、CLASS パラメータ内で devemp テーブル名を使用して開発部員のテーブルから情報を取得します。この 2 番目の照会の結果は、development というグループとして VDB に保存されます。development グループは以下の表のように考えることができます。
ename
phone
department
title
Anderson, Pat
873-2428
Development
エンジニア
Stein, Chris
873-2608
Development
Manager
Wong, May
873-2741
Development
エンジニア
これで、VDB 内に sales および development という 2 つのグループが作成されました。2 つのグループを 1 つの従業員リストに結合するまで、シナリオは完了しません。グループを結合するには、以下の Merge-Groups Webject を JSP ページに追加します。
<ie:webject name="Merge-Groups" type="GRP">
  <ie:param name="GROUP_IN"  data="sales"/>
  <ie:param name="GROUP_IN"  data="development"/>
  <ie:param name="SORTED"    data="ASC"/>
  <ie:param name="SORTBY"    data="ename"/>
  <ie:param name="GROUP_OUT" data="employees"/>
</ie:webject>
この Webject は sales および development グループを読み込み、情報をマージして、ename 属性の従業員名に基づいた 1 つの大きなグループを作成します。すべての情報は従業員名に基づいて昇順に並べ替えられます。マージされた情報の結果は、employees という 3 つ目のグループ内に置かれます。この最後のグループは後で利用できるように VDB 内に置かれます。
employees グループ内で保存されている従業員情報を表示するには、基本グループの作成と表示で使用されているような Display Webject を使用します。
<ie:webject name="Display-Table" type="DSP">
  <ie:param name="GROUP_IN"  data="employees"/>
  <ie:param name="BORDER"    data="1"/>
  <ie:param name="ATTRIBUTE"
            data="ename,department,phone,title" delim=","/>
  <ie:param name="HEADER"
            data="Name,Department,Telephone,Title" delim=","/>
</ie:webject>
生成される表示は、営業部と開発部の両方の従業員が含まれている以下のテーブルのようになります。この表示には、前のシナリオで含まれなかった部門属性が含まれています。