Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第5回 | 技術情報

Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第5回

↑ 友人に似てると言われたことがあります。

CT-Worksのスマイリーです。

ちょっと余談ネタが思い浮かばないので、早速本題に入らせて頂きます。

今回は前回予告した通り、DBからのデータ抽出とレポートのデザインの手順等について書いてまいります。
前回の繰り返しになりますが、レポート作成の手順については、SAP社提供のこのドキュメントを参考に致しました:

Crystal Reports for Eclipse – Getting Started Guide

レポートを作成し表示するまでのおおまかなフェーズは次の通りでしたね:

  1. Crystal Reports用Webアプリケーションの作成
  2. DBからのデータ抽出とレポートのデザイン
  3. Webアプリケーションの実行とレポートの表示

前回の投稿では、フェーズ1の「Crystal Reports用Webアプリケーションの作成」について書きましたので、今回はフェーズ2に入ってまいります。

★DBからのデータ抽出とレポートのデザイン

前回の投稿の手順にそって頂きますと、Eclipseの画面イメージは下のようになっているはずです:

H_KPI_04_14_ReportEditorActivated

つまり、Crystal Reportsのエディタが起動され、ブランクのレポート「CrystalReport1」が現れます。

レポートの作成手順をザックリと言ってしまえば、

  1. CrystalReport1とデータベースを関連付け、
  2. レポートにDBフィールドを貼り付け、
  3. データラベル等のその他必要な文字列をレポートに書き込む、

となります。

■CrystalReport1とデータベースを関連付ける

では早速レポートとデータベースを関連付けてみます。

Eclipseウィンドウの右下にある枠内に、「データ・ソース・エクスプローラ」というタブがありますので、このタブをクリックし中身を見てみましょう。

データ・ソース・エクスプローラ

データ・ソース・エクスプローラ

下の画面イメージのように枠の幅が小さ過ぎますと、タブ名として「デー」ぐらいしか見えないので、その場合は枠の幅を広げます。

枠の幅が狭すぎる時は広げましょう

枠の幅が狭すぎる時は広げましょう

「データベース接続」フォルダ下にある「DataMart DB on SQL Server 2008 R2…」が、本シリーズの第3回目投稿で作成したDB接続オブジェクトです。
このオブジェクトを介してDBからデータを抽出し、レポートに表示します。

ちなみに、「DataMart DB on SQL Server 2008 R2…」の下にある「Xtreme Sample Database…」は、Crystal Reports for Eclipseの付録として提供されているサンプルDBです。

では、CrystalReport1と「DataMart DB on SQL Server 2008 R2…」を関連付けてまいります。
下の画面イメージを参考に、「DataMart DB on SQL Server 2008 R2…」をビューのリストが出るまで拡張します。

ビューのリスト

ビューのリスト

テーブルではなく、なぜビュー?と思われる方々もいらっしゃると思います。
本記事シリーズをここまで書いてきて、一つ明確にしていなかったことがありました。スミマセンm(_ _)m。
それは、本シリーズの中でEclipseからアクセスしているのは、Genesys社が提供するCCAnalyzerのデータベースです。Data Martデータベースとも呼ばれています。このDBからデータを抽出する際は、テーブルからではなくビューから抽出することが推奨されています。その主な理由は次の2つです:

  1. ビュー名の方がテーブル名より分かりやすくリストから探しやすい
  2. テーブルにアクセスした場合、誤ってデータを書き換えてしまう可能性がある(ビューなら可能性ゼロ)

上図の中では、「GenesysDM」がData Mart DBです。
CrystalReport1とGenesysDMを関連付けるには…

  1. まず、レポートに必要なデータを保持するビューを、CrystalReport1にドラッグ&ドロップで追加します。本投稿シリーズの場合は、レポートを作成するために、次の3つのビューをドラッグ&ドロップしました。T_GRAGNPSCES_DAY, V_GRAGNPSCES_DAY, O_GRAGNPSCES_DAYCrystalReport1の「データ」タブをクリックした上で、データ・ソース・エクスプローラから上記3つのビューを同タブ上にドラッグ&ドロップしますと、下のような画面イメージになります:H_KPI_05_04_DragDrop3Views
    この3つのビューについては、少々説明が必要かと思います。ファイルの名称は次のような構造になっています:(ビューの種類を表す接頭文字)_(レイアウトテンプレート名)_(時間単位名を表す接尾文字列) 

    接尾文字列の「DAY」は、これら3つのビューが日単位の統計情報を保持していることを表しています。

    レイアウトテンプレートについては、その名称及び内容をGenesys社のヒストリカル・レポートツールであるCCAnalyzerの中で定義します。
    本記事シリーズではこの定義の内容については割愛させて頂きます。

    各接頭文字の意味は次の通りです:

    • T_GRAGNPSCES_DAYの…
      接頭文字「T」は「Time」の頭文字で、このビューが時間に関するデータを保持していることを表しています。
    • V_GRAGNPSCES_DAYの…
      接頭文字「V」は「View」の頭文字で、このビューがレポートの中心となる統計情報を保持していることを表しています。
    • O_GRAGNPSCES_DAYの…
      接頭文字「O」は「Object」の頭文字で、このビューが統計対象のオブジェクトに関するデータを保持していることを表しています。

    ちなみに、この3つのビューに共通するオブジェクトの種類はエージェント・グループです。

  2. 次に、この3つのビューをキー・フィールドを使用して関連付けます。
    T_GRAGNPSCES_DAYの「TIME_KEY」をドラッグし、V_GRAGNPSCES_DAYの「TIME_KEY」にドロップして2つのビューを関連付けます。
    同じ要領で、V_GRAGNPSCES_DAYとO_GRAGNPSCES_DAYを、「OBJECT_ID」により関連付けます。 

    3つのビューをキー・フィールドを使用して関連付ける

    3つのビューをキー・フィールドを使用して関連付ける

これでCrystalReport1とGenesysDMが関連付けられ、右上枠内の「フィールド・エクスプローラ」タブの内容が、下の画面イメージのようになります:

レポートとビューが関連付けられました

レポートとビューが関連付けられました

■レポートにDBフィールドを貼り付ける

いよいよレポートの「見かけ」を作り始めます。

  1. レポート編集枠下にある「レイアウト」タブをクリックし、空白のレポート表示に戻ります。

    レポートをデザインするページに戻る

    レポートをデザインするページに戻る

  2. 右上枠内の「フィールド・エクスプローラ」で「O_GRAGNPSCES_DAY」ビューを拡張し、「OBJECT_NAME」フィールドを右クリックすると表示されるメニュー上で「フィールドのグループ」を選択します。
    この操作により、レポート上の統計情報がオブジェクト名(この例の場合は、エージェント・グループ名)でグループ化されます。

    特定のフィールドによりレポート上にグループを作成

    特定のフィールドによりレポート上にグループを作成

    CrystalReport1のレイアウトタブ内の表示は、下の画面イメージになります:

    1つのDBフィールドによりグループが作成されました

    1つのDBフィールドによりグループが作成されました

    「ページヘッダー」の直ぐ下に「グループ1」が追加され、その中に「GroupName…」が表示されるようになります。

  3. この時点の状態で、レポートがどのような見かけになるかを確認してみましょう。
    CrystalReport1の「プレビュー」タブをクリックします。レポートを作成し始めて最初にこの「プレビュー」タブをクリックした時は、DBMSへログオンするためのユーザー名とパスワードを尋ねられますので、入力後に「OK」ボタンをクリックします。

    最初に「プレビュー」タブをクリックした時

    最初に「プレビュー」タブをクリックした時

    プレビュー表示は下の画面イメージのようになります:

    エージェント・グループ名のみが表示されているレポートのプレビュー

    エージェント・グループ名のみが表示されているレポートのプレビュー

    これらの文字列は3つともエージェント・グループ名を表しており、レイアウトタブで「OBJECT_NAME」をグループとして追加したことにより表示されるようになりました。
    H_KPI_05_14_RelationLayoutPreview

  4. エージェント・グループ名ごとに、具体的な統計情報を追加していきます。
    CrystalReport1の「レイアウト」タブをクリックします。
    右上枠内の「フィールド・エクスプローラ」の中から「T_GRAGNPSCES_DAY」ビューの「DATE_YYYYMMDD」をドラッグし、レイアウト内の「ボディ」内にドロップします。

    日付をレポートに追加

    日付をレポートに追加

    この操作により、統計情報に紐付いた日付がレポートに配置されます。
    「ページヘッダー」枠には「DATE_YYYYMMDD」という固定文字列が、DBフィールドの配置に伴い自動的に配置されます。

    同じ要領で、「V_GRAGNPSCES_DAY」ビューから、次の5つのDBフィールドをレポート内に配置します:

    • T_NPS_PROMOTE
    • T_NPS_DETRACT
    • T_NPS_RESPS
    • NPSCORE
    • AV_CES

    H_KPI_05_16_DragDropRests

    この操作により、レポートに必要な統計情報が配置されます。

■データラベル等のその他必要な文字列をレポートに書き込む

    1. 最後に、データラベル等の固定文字列をレポート内に書き込み、見かけを整えていきます。
      先ずは、CrystalReport1の「プレビュー」タブをクリックし、現時点での見かけを確認しましょう。H_KPI_05_17_PreviewAll1

      最終的には下の画面イメージのようにしたいので、適宜フォントや固定文字列の内容を編集します。

      レポートレイアウトの全ての表示項目について解説しても良いのですが、同じことの繰り返しばかりでは読者の皆さんを退屈させてしまいますので、ポイントのみを書いてまいります。書かれていない表示項目については、これから書くポイントを参考に編集してみてください。
    2. 固定文字列の編集
      日付を例にとって説明します。
      「プレビュー」タブ上で「DATE_YYYYMMDD」を右クリックし、ポップアップしたメニュー上で「プロパティ」を選択します。

      固定文字列のプロパティを表示させる

      固定文字列のプロパティを表示させる

      右下枠内に「プロパティ」タブの内容が表示されますので、フォント名を日本語のものに変更します。

      フォントの変更

      フォント名の変更

      「プレビュー」タブに戻り、固定文字列の「DATE_YYYYMMDD」を「日付」に変更します。

      固定文字列の変更

      固定文字列の変更

      同じ要領で他の固定文字列を変更することが出来ます。
      プロパティにはフォント以外にも沢山ありますので、いろいろ試してみてください。

      その他のプロパティ

      その他のプロパティ

    3. 変数文字列の編集
      「推奨者数(T_NPS_PROMOTE)」を例にとって説明しますが、固定文字列と同様にプロパティ等の変更により希望の書式にすることが出来ます。
      「プレビュー」タブ上で「gtest-スキル1」内の「20141126」行の最初の数値「1.00」を選択します。

      デフォルトの数値書式

      デフォルトの数値書式

      「推奨者数」は整数ですので、「プロパティ」タブ上で「数値書式」の値をクリックし、表示されるメニューから整数型のものを選択します。

      数値の表示書式を整数型に変更

      数値の表示書式を整数型に変更

      プレビューは下の画面イメージのようになります:

      書式が整数型に変更された数値

      書式が整数型に変更された数値

      フィールドの幅が広すぎるようであれば、一つの数値の右枠を左方向にドラッグすることによって、他のすべての行の数値の幅も狭くすることが出来ます。

      フィールドの幅を狭くする

      フィールドの幅を狭くする

      同じ要領で他の変数フィールドも書式を変更してみましょう。
      H_KPI_05_26_FmtModDone

    4. パレットの利用
      「プレビュー」タブの右枠は「パレット」と呼ばれ、レイアウト内で使用できる部品が並んでいます。
      例えば、パレットから任意の文字列をレポートに追加するには次のようにします。
      「プレビュー」タブ上でグループ名を少し右にずらします。

      グループ名を少し右にずらす

      グループ名を少し右にずらす

      この際、プロパティを使用し、エージェント・グループ名のフォントを日本語のものに変更してもよいと思います。
      次に、パレットにある「テキスト」部品を「プレビュー」タブのグループ名の左側に配置します。

      テキストボックスを手ポート内に配置する

      テキストボックスをレポート内に配置する

      テキストボックスのプロパティを、グループ名のものと合うように変更し、ボックス内に任意の文字列を入力します。

      テキストボックスに固定文字列を入力する

      テキストボックスに固定文字列を入力する

       

    5. その他の書式変更について
      行間を広げたい場合は、「レイアウト」タブ上で広げます。
      例えば、統計情報が表示された行間を広げるには、「レイアウト」タブ上でマウスを使い「ボディ」行の下側の境界線を下に広げます。

      行間を広げる

      境界線を下に下げ行間を広げる

      「プレビュー」タブに戻り、行間が広がったことを確認します。

      広げられた行間

      広げられた行間

      この時点までのレポートのイメージは、未だ最終形になっていませんが、これまでの解説を総動員すれば出来るはずですので、ご自身で頑張ってみてください。

今回の投稿はここまでと致します。
次回は「Webアプリケーションの実行とレポートの表示」を解説致します。
おそらく最終回になると思いますので、どうぞご期待下さい!

ご質問/ご用命/お問い合わせ

Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第1回
Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第2回
Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第3回
Crystal Reports(クリスタルレポート)でNPSとCES表示する – 第4回


コメント投稿

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • 無料ダウンロード(最新の3件)