前のトピック次のトピック


チュートリアル 2: レポート・データのグループ化

このチュートリアルでは、クレジット限度ごとにお客様データをグループ化する方法について説明します。 このチュートリアルは、チュートリアル 1: 『シンプルなリスト・レポートの作成』 で作成したレポートから始まります。 この最初のチュートリアルでは、アルファベット順にお客様をリストしたシンプルなレポートを作成しました。 チュートリアル 2 のレポートでは、0-49999、50000-99999、100000-149999 などの $50,000.00 ごとのクレジット限度グループにお客様を編成します。

このチュートリアルを開始する前に、最初のチュートリアルを完了しておいてください。

このチュートリアルでは、以下のタスクを実行します。

タスク 1: レポート設計をオープンする

最初のチュートリアルで、My Reports という名前のプロジェクト・フォルダーに Customers.rptdesign を作成しました。 以下のいずれかのプロシージャーを使用して、Customers.rptdesign をオープンします。

図 8-1 で示されているように、ファイルがレイアウト・エディターでオープンします。

図 8-1 レイアウト・エディターのお客様レポート設計

タスク 2: レポートを新規ファイルとして保管する

最初のチュートリアルで作成したレポートを直接編集せずに、Customers.rptdesign を新規ファイルとして保管します。

  1. 「ファイル」->「別名保管」を選択する。 「別名保管」には、ファイルの現在の名前および場所が表示されます。
  2. 「ファイル名」で、Customers.rptdesign を Customers_grouped.rptdesign に変更し、「終了」を選択する。 BIRT Report Designer が Customers.rptdesign のコピーを作成します。 新規ファイルがレイアウト・エディターに表示されます。

タスク 3: クレジット限度フィールドをデータ・セットに追加する

レポートでクレジット限度データを表示するには、CREDITLIMIT フィールドをデータ・セットに追加する必要があります。

  1. 「データ・エクスプローラー」を選択する。
  2. 「データ・セット」を展開し、 「カスタマー (Customers)」をダブルクリックする。 「データ・セットの編集」に Customers データ・セットの SQL 照会が表示されます。
  3. phone の後ろにコンマ (,) を追加する。
  4. 次の行に、以下のテキストを追加する。
  5. creditLimit 
    
    変更した照会は、図 8-2 のようになります。

    図 8-2 creditLimit フィールドが追加された照会
  6. 「結果のプレビュー」を選択し、照会がクレジット限度情報の行を戻すことを確認する。
  7. 「OK」を選択してデータ・セットを保管する。

タスク 4: クレジット限度データをレポートに追加する

このプロシージャーでは、既存テーブルにクレジット限度フィールドを挿入します。

  1. レイアウト・エディターで、テーブルを選択する。 テーブルの左上にガイド・セルが表示されます。
  2. 図 8-3 に示されているように、 最初の列の上にあるガイド・セルを右クリックして、「挿入」->「列の左揃え」を選択する。
  3. 図 8-3 既存の桁の左側への列の挿入
    新規列が表示されます。
  4. データ・エクスプローラーで「データ・セット」を展開し、 「カスタマー (Customers)」を展開する。Customers データ・セットに、照会で指定されたフィールドが表示されます。
  5. CREDITLIMIT フィールドをデータ・エクスプローラーからドラッグし、[CUSTOMERNAME] の横の詳細行セルにドロップする。
  6. BIRT Report Designer が名前付き列を作成する。名前付き列はデータ・セット・フィールドにバインドされます。 「データ・バインディングの選択」はこの列バインディングを表示します。
  7. 「OK」を選択してデフォルトの列バインディングを受け入れる。
  8. レイアウト・エディターのテーブルに、追加したフィールドが表示されます。 レイアウト・エディターがヘッダー行に自動的に追加したラベル要素も表示されます。 このラベルは、列見出しとして扱われ、静的テキストとしてフィールド名を表示します。 レポートは、図 8-4 のようになります。

    図 8-4 レイアウト・エディターでクレジット限度フィールドを追加した結果
  9. CREDITLIMIT ラベルを編集し、「クレジット限度 (Credit Limit)」として表示されるようにする。
  10. レポートをプレビューする。レポートは、図 8-5 のようになります。
  11. 図 8-5 クレジット限度の追加結果を表示するレポート・プレビュー
    お客様の中には、クレジット限度が 0 のお客様も含まれます。これらは新規のお客様で、クレジット行が未承認になっています。

タスク 5: クレジット限度によってグループ・データをグループ化する

現在レポートは、お客様の名前でアルファベット順にソートされています。 最初のチュートリアルで、テーブル内の行をお客様の名前でソートするように指定したことに注意してください。 このプロシージャーで、50,000 の間隔でクレジット限度ごとにデータをグループ化します。 データをグループ化する場合、BIRT は最初に行をグループにソートし、次にそれぞれのグループ内の行をソートします。 この場合、ソート条件がテーブル・レベルで指定されていることが前提になっています。 このタスクが完了するとわかりますが、それぞれのクレジット限度グループ内のデータ行は、お客様の名前でソートされます。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. テーブルを右クリックして、「グループの挿入」->「上」を選択する。 図 8-6 で示す新規グループには、設定可能なグループ・プロパティーが表示されています。
  3. 図 8-6 新規グループ
  4. 以下のステップに従って、50000 の間隔でクレジット限度ごとにグループ化することを指定する。
    1. 「名前」に、グループ名として次のテキストを入力する。
    2. credit_group 
      
    3. 「グループ」で、ドロップダウン・リストから CREDITLIMIT を選択する。
    4. 「間隔」で、ドロップダウン・リストから「間隔」を選択する。
    5. 「範囲」に 50000 と入力する。
    6. 他のオプションはデフォルト値を使用する。
    7. 「OK」を選択する。
    レポート設計内のテーブルには、図 8-7 に示されているように、グループ・ヘッダーおよびグループ・フッター行が表示されます。 レイアウト・エディターがグループ・ヘッダー行に自動的に追加したデータ要素も表示されます。 このデータ要素は、グループ見出しとして扱われ、 生成されたレポートでは、それぞれのグループの最初のクレジット限界値が表示されます。

    図 8-7 レポート設計におけるグループ・ヘッダー行およびグループ・フッター行
  5. グループ・ヘッダー行に表示される [CREDITLIMIT] データ要素を選択する。 詳細行に表示される [CREDITLIMIT] データ要素は選択しないでください。
  6. プロパティー・エディターで、「一般」を選択し、 次に B を選択して、グループ見出しの書式を太字体にする。
  7. レポートをプレビューする。レポートをスクロールダウンして、すべてのデータを表示する。 図 8-8 に示されているように、このレポートでは、データは 4 つのクレジット限度グループに編成されます。 それぞれのグループの先頭に、太字で 0、61100、113000、227600 という数字が示されています。 これらの数字は、それぞれのグループの最初のクレジット限度値に一致しています。 それぞれのグループでは、お客様はアルファベット順にソートされています。
  8. 図 8-8 4 つのクレジット限度グループの 1 つを表示するレポート・プレビュー

タスク 6: グループ・ヘッダーにクレジット限度範囲を表示する

グループ・ヘッダーにそれぞれのグループの最初の値が表示されるよりも、 以下のように、それぞれのグループのクレジット限度範囲が表示されているほうが、レポートのナビゲートは簡単です。

0 - 49999 
50000 - 99999 
100000 - 149999 

このプロシージャーでは、これらのクレジット限度範囲を表示するための、JavaScript 式の作成方法について示します。 このプロシージャーは、JavaScript 式と関連付けられる列バインディングの作成方法も示しています。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. テーブルを選択し、プロパティー・エディターで「バインディング」を選択する。
  3. 次のように、列バインディングを新規作成する。
    1. 「追加」を選択する。
    2. 式ビルダーで、次の式を入力する。
    3. for(i=50000; i<300000; i+=50000){ 
      if( row["CREDITLIMIT"] < i ){ 
        rangeStart = i-50000; 
        rangeEnd = i-1; 
        break; 
      } 
      } 
      displayString=rangeStart + " - " + rangeEnd; 
      
    4. 「OK」を選択する。新規列バインディングが、 列の名前が強調表示されたプロパティー・エディターのバインディング・ページに表示されます。
    5. 「新規バインディング」名を次の名前に置換する。
    6. CREDIT_GROUP_HEADER 
      
  4. データ要素をダブルクリックし、CREDIT_GROUP_HEADER を選択して、「OK」を選択することによって、 グループ・ヘッダーの CREDITLIMIT データ要素を更新し、新規列バインディングを使用できるようにする。
  5. レポートをプレビューする。グループ・ヘッダーに、クレジット限度範囲が表示されます。 図 8-9 では、50000 - 99999 グループ・ヘッダーが示されています。
  6. 図 8-9 クレジット限度範囲を表示するレポート・プレビュー

タスク 7: 集合情報を表示する

データをグループ化することによる 1 つの利点は、要約を追加したり、それぞれのグループの先頭または終端に情報を集約したりできることです。 このプロシージャーで、以下のタスクを実行します。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. 以下のようにして、それぞれのグループのお客様の数を表示する。
    1. パレットからデータ要素をドラッグして、グループ・フッター行の最初のセルにドロップする。 グループ・フッター内にある要素は、それぞれのグループの終端に表示されます。
    2. 以下のようにして「データ・バインディングの選択」で列を新規作成する。
      1. 新規行の「名前」に、次のテキストを入力する。
      2. GROUP_CUSTOMER_COUNT 
        
      3. デフォルトのデータ型「任意」を使用する。
      4. 「式」に、次の集約式を入力する。
      5. "お客様: " + Total.count() 
        
        Total.count( ) は、行数を戻します。
      6. デフォルトの Aggregate On 値、credit_group を使用する。 この値は、Total.count( ) 関数が、それぞれのクレジット限度グループ内の行数を戻すことを示しています。
      7. 作成したばかりの列バインディングを選択し、「OK」を選択する。 データ要素は、選択した列バインディングを使用します。
    3. レポートをプレビューする。レポートには、図 8-10 に示されているとおり、それぞれのグループの最後にお客様数が表示されています。
    4. 図 8-10 それぞれのグループのお客様の数を示すレポート・プレビュー
  3. 「レイアウト」を選択してレイアウト・エディターに戻る。
  4. すべてのお客様の数を以下のようにして表示する。
    1. テーブルを選択する。
    2. テーブルの左上にガイド・セルが表示されます。
    3. 最初の行「表」-「ヘッダー」の左側のガイド・セルを右クリックして、 次に「挿入」->「行」->「上」を選択する。
    4. 新規テーブル・ヘッダー行が、列見出しを表示する行の上に表示されます。 この行は、後続行のプロパティーを継承しているため、カラーで表示されます。
    5. 新規行を選択し、プロパティー・エディターで、背景色を白に変更する。
    6. パレットからデータ要素をドラッグして、新規テーブル・ヘッダー行の最初のセルにドロップする。 テーブル・ヘッダー内にある要素が、セクションの先頭に表示されます。
    7. 「データ・バインディングの選択」で、列バインディングを以下のように新規作成する。
      1. 新規行「名前」に、次のテキストを入力する。
      2. TOTAL_CUSTOMER_COUNT 
        
      3. デフォルトのデータ型「任意」を使用する。
      4. 「式」に、次の集約式を入力する。
      5. "お客様の数: " + Total.count() 
        
      6. デフォルトの Aggregate On 値、ALL を使用する。 この値は、Total.count( ) 関数がテーブル全体の行数を戻すことを示しています。
      7. 作成したばかりの列バインディングを選択し、「OK」を選択する。 データ要素は、選択した列バインディングを使用する。
    レポート設計は、図 8-11 のようになります。

    図 8-11 お客様の総数を表示するレポート設計
  5. レポートをプレビューする。レポートでは、図 8-12 に示されているように、テーブルの先頭にお客様数が表示されています。
  6. 図 8-12 お客様の総数を表示するレポート・プレビュー

タスク 8: レポートをフォーマットする

レポートに正しいデータが表示されるようになったため、レポートの外観の改善に主眼を置くことができます。 このセクションでは、以下のタスクを実行します。

詳細行から信用限度データを除去する

正しいクレジット限度グループにデータが表示されていることを検証するには、それぞれのお客様のクレジット限度を表示すると便利です。 データの検証が終了すると、レポートから個々のクレジット限度情報を削除できます。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. 詳細行から [CREDITLIMIT] データ要素を削除する。
  3. レポートをプレビューする。レポートは、図 8-13 のようになります。
  4. 図 8-13 それぞれの行にクレジット限度データが表示されていないレポート・プレビュー

各グループの開始行にグループ見出しを表示する

クレジット限度グループ見出しが、それぞれのグループの詳細行の上の、その見出し固有の行に表示されます。 このプロシージャーでは、グループ見出しをドロップします。最初の詳細行に見出しが表示されます。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. 図 8-14 に示されているように、グループ見出しを含むセルを選択する。 セル内のデータ要素ではなく、セルを選択するように注意してください。
  3. 図 8-14 選択されたグループ見出しセル
  4. プロパティー・エディターの「一般プロパティー」で、 「ドロップ」を「詳細」に設定する。 レポート設計では、グループ見出しがまだ詳細行の上に表示されています。 これは、要素がグループ・ヘッダー行にまだ実際に存在しているためです。
  5. プロパティー・エディターの「埋め込み」プロパティーで、「余白--上部 (Padding--Top)」を 12 ポイントに設定する。 このように設定することにより、グループ見出しが詳細行のデータとより正確に位置合わせされます。 最初のチュートリアルで、詳細行セルの上部に 12 ポイントのパディングを追加したことに注意してください。
  6. レポートをプレビューする。グループ見出しが、図 8-15 に示されているように、それぞれの最初の行に表示されます。
  7. 図 8-15 ドロップしたグループ見出しを表示するレポート・プレビュー

各グループを線で区切る

それぞれのグループを区切るために線を引くと、データのグループを確認しやすくなります。

  1. 「レイアウト」を選択してレイアウト・エディターに戻る。
  2. グループ・フッター行内のすべてのセルを選択する。 複数のセルを選択するには、Shift-click を使用します。
  3. プロパティー・エディターの「境界線」を選択して、次に境界線プロパティーを設定する。
    • 「スタイル」を実線に設定する。
    • 下部境界線を表示するボタンを選択する。
  4. 線とその線の上のテキストの間にスペースをさらに追加する。 セルがまだ選択されている状態で、プロパティー・エディターで「余白」プロパティーを選択し、「下部」を 6.0 ポイントに設定する。
  5. レポートをプレビューする。図 8-16 に示されているように、それぞれのグループの終りに線が表示されます。
  6. 図 8-16 グループ間に線を表示するレポート・プレビュー

タスク 9: BIRT レポート・ビューアーでレポートをプレビューする

これまでは、BIRT Report Designer プレビューアーでレポート出力を検査してきました。 今回は、レポート・ビューアーを使用して、レポートがデプロイ時にどのような外観をしているかを確認します。 レポート・ビューアーでは、目次を使用した特定のレポート・セクションへのナビゲート機能を含む、追加機能が提供されています。レポートに複数のグループを作成する場合、BIRT は自動的に目次を生成し、グループ値でレポートの階層がわかるようにします。

  1. 「ファイル」->「Web ビューアーでレポートを表示」を選択する。
  2. レポートがレポート・ビューアーに表示されます。

  3. 目次ボタン (ウィンドウの左上のボタン) を選択し、目次を表示する。
  4. 目次では、4 つの各クレジット限度グループの最初の値が表示されています。 値を選択すると、そのレポートの対応するセクションが表示されます。 例えば 61100 を選択すると、図 8-17 に示されているとおり、レポートは、50000 - 99999 のクレジット限度範囲にあるお客様の行を表示します。

    図 8-17 目次の値を選択し、対応するデータを表示します

タスク 10: 目次のクレジット限度範囲を表示する

目次には、それぞれのクレジット限度グループの最初の値を表示するよりも、 レポートと同じクレジット限度範囲値を表示したほうが合理的です。 このタスクは、以前使用したものと同じ JavaScript 式を使用してグループ・ヘッダーにクレジット限度範囲 (0 - 49999、50000 - 99999、など) を表示することによって行います。

  1. BIRT Report Designer に戻る。
  2. レイアウト・エディターで、テーブルを選択し、 次にプロパティー・エディターで「グループ」タブを選択する。
  3. グループのリストの credit_group をダブルクリックする。
  4. 「グループの編集」には、グループのプロパティーが表示されます。 デフォルトで、「TOC 項目式」は、グループ化フィールド row["CREDITLIMIT"] に設定されています。
  5. ellipsis (...) ボタンを選択し、 式ビルダーで、row["CREDITLIMIT"] 式を次の式で置換する。 これは、グループ・ヘッダーのデータ要素が使用するものと同じ列バインディング式です。 式を再入力せずに、データ要素からコピーして、ここに貼り付けることができます。
  6. for(i=50000; i<300000; i+=50000){ 
    if( row["CREDITLIMIT"] < i ){ 
      rangeStart = i-50000; 
      rangeEnd = i-1; 
      break; 
    } 
    } 
    displayString=rangeStart + " - " + rangeEnd; 
    
  7. 「OK」を選択する。
  8. レポート・ビューアーでレポートをプレビューし、 目次の変更を検証する。
  9. 目次には、図 8-18 に示されているとおり、クレジット限度範囲が表示さます。

    図 8-18 更新された目次


 (c) Copyright Actuate Corporation 2006

前のトピック次のトピック