2013年3月19日火曜日

◆パラメータの利用

作成するレポート(商品区分ごとの売上レポート)

この Step では、次のようなパラメーターを含んだレポートを作成する手順を説明します。

image

区分コードのパラメーター化
区分コードのパラメーター化

まずは、商品の「区分コード」をパラメーター化して、選択した区分コードの売上データだけを表示するようにしてみましょう。

image

共有データセットの変更
  1. 最初に、レポート ビルダーを起動します。
  2. パラメーター化を行うには、データセットを変更する必要があるので、[作業の開始]ページでは、[開く]を選択します。
    image
  3. [レポートを開く]ダイアログが表示されたら、[アイテムの種類]で[データセット(.rsd)]を選択して、Step2 で作成した共有データセット「ds_受注クエリ」を選択し、[開く]ボタンをクリックします。
    image
  4. [データ ソースの資格情報の入力]ダイアログが表示されたら、データ ソースに接続するための適切な資格情報を入力して、[OK]ボタンをクリックします。
    image
  5. これにより、[クエリ デザイナー]ダイアログが表示されて、データセットの変更が行えるようになります。
    image
    クエリ デザイナーでは、クエリの一番最後へ「WHERE 商品.区分コード = @p1」を追加して、[!](実行)ボタンをクリックします。
    [クエリ パラメーターの定義]ダイアログが表示されたら、[パラメーター名]の「@p1」の[パラメーター値]へ「1」と入力して、「OK」ボタンをクリックします。これで、次のように商品区分コードが 1(飲料)のデータのみを取得することができます。
    image
  6. 次に、左上のレポート ビルダー メニューから[名前を付けて保存]をクリックして、違う名前で共有データセットを保存します。
    image
    [データセットとして保存]ダイアログでは、[名前]に任意の名前(ds_受注クエリpara など)を入力して、[OK]ボタンをクリックします。
レポートの作成

次に、新しいレポートを作成します。

  1. レポートを作成するために、別途レポート ビルダーを起動します(共有データセットを編集しているレポート ビルダーは開いたままにしておいてください)。
  2. [作業の開始]ページでは、[新しいレポート]の[空のレポート]を選択します。
  3. レポートのデザイン画面が表示されたら、デザイン上の任意の場所を右クリックして、[挿入]から[マトリックス]をクリックします。
    image
  4. [データセットのプロパティ]ダイアログが表示されたら、[参照]ボタンをクリックして、前の手順で作成した共有データセット(ds_受注クエリpara)を選択し、[開く]ボタンをクリックします。
    image
  5. [データセットのプロパティ]ダイアログへ戻ったら、[OK]ボタンをクリックしてダイアログを閉じます。
    image
  6. 次に、配置したマトリックスの[行グループ]へ「区分名」、[列グループ]へ「年」、[データ]へ「受注金額」フィールドを配置します。
    image
  7. 次に、受注金額の書式を「通貨」へ変更します。
    image
  8. 次に、「商品名」フィールドを「区分名」グループの下へ追加して、子グループを作成します。
    image
  9. 次に、各セルの書式(フォントや背景色など)を任意に設定して見栄えを調整します。
    image
パラメーターの設定

次に、パラメーターを設定します。データセットのクエリの中で、「@」マークを付けたもの(前の手順では @p1 を作成)は、自動的にパラメーターへ設定されているので、これを確認/変更します。

  1. パラメーターを確認するには、[レポート データ]ペインの[パラメーター]フォルダーを展開します。
    image
    p1 という名前のパラメーターが自動的に作成されていることを確認できます。
  2. 次に、「p1」パラメーターを右クリックして、[パラメーターのプロパティ]をクリックします。
    image
  3. [レポート パラメーターのプロパティ]ダイアログが表示されたら、[プロンプト]で「商品区分」など、パラメーターの内容を表す任意の文字を入力し、[データ型]で「整数」を選択します。
    image
  4. 続いて、次のように[既定値]ページをクリックして開き、[値の指定]を選択して、[追加]ボタンをクリックします。
    image
    [値]へ「1」(飲料)など、任意の商品区分コードを入力して、パラメーターの既定値を設定し、[OK]ボタンをクリックします。
  5. [実行]ボタンをクリックしてプレビューを表示し、ここまでの結果を確認してみます。
    image
    レポートの上部へ「パラメーター ボックス」が表示されて、既定値として設定した値(ここでは 1)が格納され、商品区分コード「1」の飲料区分の商品のみが表示されていることを確認できます。
  6. 次に、パラメーター ボックスの値を「2」(調味料)へ変更して、[レポートの表示]をクリックしてみましょう。
    image
    今度は、商品区分コードが「2」(調味料)の商品のみが表示されることを確認できます。

    このようにパラメーターを利用すると、レポートの結果を動的に変更できるようになります。
    なお、「区分コード」と「区分名」の対応は、次のように Management Studio で「商品区分」テーブルの中身を参照することで確認することができます。

パラメーター値をレポートへ表示

次に、パラメーター値をレポート内へ表示するようにしてみましょう。

  1. まずは、次のようにレポート上のタイトルのテキスト ボックス内へ「区分」と入力します。
    image
    続いて、[パラメーター]フォルダーから「p1」パラメーターを、タイトルのテキスト ボックス内へドラッグ&ドロップします。さらに、テキスト ボックス内へ「の受注金額」と入力します。
  2. ここまでの設定をプレビュー表示して、結果を確認してみましょう。
    image
    パラメーター値が、レポート内へ表示されていることを確認できます。
  3. 続いて、パラメーター ボックスの値を「2」へ変更して、[レポートの表示]をクリックします。
    image
    今度は、レポート内の表示が「2」へ変わったことを確認できます。
  4. 確認後、タイトルを任意の書式(フォントなど)へ変更しておきましょう。
    image
ドロップダウン リストによるパラメーターの選択

次に、パラメーターの値を、ドロップダウン リストで選択できるようにしてみましょう。また、このときに表示するのは区分コートではなく、区分名が表示されるようにしましょう。

image

  1. まずは、ドロップダウン リストへ表示する「区分名」を取得するために、新しくデータセットを追加します。次のように[データセット]フォルダーを右クリックして、[データセットの追加]をクリックします。
    image
    [データセットのプロパティ]ダイアログが表示されたら、[レポートに埋め込まれたデータセットを使用します]を選択して、[新規]ボタンをクリックします。
  2. [データ ソースのプロパティ]ダイアログが表示されたら、Step2 で作成した共有データ ソース(DS_NorthwindJ1)を選択して、[OK]ボタンをクリックします。
    image
  3. [データセットのプロパティ]ダイアログへ戻ったら、[クエリ デザイナー]ボタンをクリックします。
    image
  4. [データ ソースの資格情報の入力]ダイアログが表示されたら、データ ソースに接続するための適切な資格情報を入力して、[OK]ボタンをクリックします。
    image
  5. [クエリ デザイナー]ダイアログが表示されたら、次のように[テーブル]フォルダーを展開して、「商品区分」テーブルの「区分コード」と「区分名」列を選択して、[クエリの実行]ボタンをクリックします。
    image
    商品区分コードと区分名が取得できていることを確認します。確認後、[OK]ボタンをクリックして、[クエリ デザイナー]を閉じます。
  6. [データセットのプロパティ]ダイアログへ戻ったら、[OK]ボタンをクリックしてダイアログを閉じます。
  7. [レポート データ]ペインの[データセット]フォルダーに、新しく「DataSet2」が追加されていることを確認できます。
    image
  8. 次に、[パラメーター]フォルダーの「p1」を右クリックして、[パラメーターのプロパティ]をクリックします。
    image
    [レポート パラメーターのプロパティ]ダイアログが表示されたら、[使用できる値]ページを開いて、「クエリから値を取得」を選択します。[データセット]には「DataSet2」、[値フィールド]で「区分コード」、[ラベル フィールド]で「区分名」を選択して、[OK]ボタンをクリックします。これで、パラメーターをドロップダウン形式に変更して、区分名フィールドを表示できるようになります。
  9. ここまでの設定をプレビュー表示して、結果を確認してみましょう。
    image
    パラメーター ボックスがドロップダウン リストへ変更されて、区分名が選択できるようになっていることを確認できます。
  10. 次に、パラメーターのドロップダウン リストから任意の区分名(菓子類など)を選択して、[レポートの表示]をクリックしてみましょう。
    image
    選択した商品区分のデータが表示されることを確認できます。
ラベル フィールドをレポートへ表示

次に、パラメーターで選択した区分名を、レポートへ表示するように変更してみましょう。

image

  1. まずは、タイトルのテキスト ボックス内の [@p1] を選択して右クリックし、[式]をクリックします。
    image
  2. [式]ダイアログが表示されたら、式を次のように変更します(Value を Label へ変更)。
    =Parameters!p1.Label

    image
    「p1.Value」を「p1.Label」へ変更することで、パラメーターのラベル フィールドの値を表示できるようになります(ラベル フィールドには、前の手順で区分名を割り当てるように設定しています)。
  3. ここまでの設定をプレビュー表示して、結果を確認してみます。
    image
    任意の商品区分を選択し、[レポートの表示]をクリックすると、今度は、区分コードではなく、区分名が表示されることを確認できます。
パラメーターの複数選択

次に、「年度」を選択するパラメーターを追加して、複数の値を選択できるようにしてみましょう。

image

  1. まず、共有データセット(ds_受注クエリpara)を編集している側のレポート ビルダーを開きます。レポート ビルダーを閉じてしまっている場合は、新しくレポート ビルダーを起動して、[開く]から共有データセットを開いておいてください。
  2. クエリ デザイナーで、WHERE 句の最後へ「 AND YEAR(受注.受注日) IN (@p2)」を追加して、[!](実行)ボタンをクリックします。
    image
    [クエリ パラメーターの定義]ダイアログが表示されたら、「@p1」には「1」、「@p2」には「2005」と入力して、「OK」ボタンをクリックします。これで、次のように 2005年度の商品区分コードが「1」(飲料)のデータのみを取得することができます。
    image
    確認後、画面上部の[保存]ボタン(フロッピーの形をしたアイコン)をクリックして、データセットを保存します。
  3. 次に、レポートを作成している側のレポート ビルダーへ戻って、[レポート データ]ペインで共有データセット(DataSet1)を右クリックして、[データセットのプロパティ]をクリックします。
    image
    [データセットのプロパティ]ダイアログが表示されたら、[フィールドの更新]ボタンをクリックします。これで共有データセット側で更新された情報をレポート側に反映させることができます。
    実行後、[OK]ボタンをクリックしてダイアログを閉じます。
  4. [パラメーター]フォルダーを展開すると、「p2」パラメーターが自動的に作成されていることを確認できます。
    image
  5. 次に、p2 パラメーターを右クリックして、[パラメーターのプロパティ]をクリックします。
    image
    [レポート パラメーターのプロパティ]ダイアログが表示されたら、[プロンプト]へ「年度」など、パラメーターの内容を表す任意の文字を入力し、[複数の値を許可]をチェックします。
  6. 続いて、[使用できる値]ページをクリックして開き、[値の指定]を選択します。[追加]ボタンをクリックして、[値]へ「2005」と入力します。
    image
    同様の操作で、「2006」と「2007」の[値]を追加していきます。
  7. 次に、[既定値]ページを開いて、既定値を指定します。
    image
    [値の指定]を選択して、[追加]ボタンをクリックし、[値]へ「2005」と入力します。同様の操作で、「2006」と「2007」の[値]を追加していきます。
  8. 設定後、プレビューを表示して、結果を確認してみましょう。
    image
    レポートの上部に[年度]のパラメーター ボックスが表示されることを確認できます。
  9. パラメーター ボックスで任意の年度を複数選択して(2006と2007など)、[レポートの表示]ボタンをクリックします。
    image
    2006年と2007年のデータのみが表示されることを確認できます。
    このように、クエリで IN 演算子でパラメーターを定義して、[複数値を許可]するように設定すれば、複数の値を選択できるようになります。
レポート サーバーへレポートの保存
レポート サーバーへレポートの保存

以上で、この Step のレポート作成が完了ですが、作成したレポートは、次の Step でも使用するので、名前を付けてレポート サーバー上へ保存しておきます。

  1. レポート ビルダー メニューで[名前を付けて保存]をクリックして、「SalesRepo」という名前でレポート サーバー上へ保存します。
    image
レポート マネージャーからパラメーターの確認

レポート サーバー上に保存したパラメーター付きのレポートは、レポート マネージャーからパラメーターを確認/変更することもできます。これも確認しておきましょう。

  1. まずは、Internet Explorer を起動して、次のように URL を入力して、レポート マネージャーへアクセスします。
    http://サーバー名/Reports

    image
    レポートの一覧が表示されたら、「SalesRepo」の[▼]ボタンをクリックして、[管理]をクリックします。
  2. 次に、[パラメーター]ページをクリックして開くと、パラメーターの既定値やプロンプト(文字列の表示)などを変更することができます。
    image

image

image

image

image

ジャンプ レポートの作成
ジャンプ レポートの作成

Reporting Services のレポートは、次のように別のレポートへジャンプさせることも簡単に行うことができます。

image

グラフやレポート内の任意の値をクリックしたときに、その値をジャンプ先となるレポートのパラメーターへ代入する値として渡すことができます。

  1. ジャンプ先のレポートには、この Step で作成した SalesRepo レポートを利用します。
    image
  2. ジャンプ元のレポートには、次のように区分ごとの受注金額を「円グラフ」で表示するレポートを利用します。
    image
    作成方法は、Step 3 で作成したグラフとほとんど同じで、[Σ値]へ「受注金額」、[カテゴリ グループ]へ「区分名」を設定して、区分ごとの受注金額を円グラフで表示するようにします。
    image
    上画面のレポートは、データ ラベルを設定していますが、これを設定する方法については、Step 11 で説明します。
  3. ジャンプ先となるレポートを設定するには、次のようにグラフを選択して右クリックし、[系列のプロパティ]をクリックします。
    image
  4. [系列のプロパティ]ダイアログが開いたら、[アクション]ページを開いて、[レポートに移動する]を選択し、[レポートの指定]で[参照]ボタンをクリックします。
    image
  5. [レポートの選択]ダイアログが表示されたら、レポート サーバー上の「SalesRepo」レポートを選択して、[開く]ボタンをクリックします。
    image
  6. [系列のプロパティ]ダイアログへ戻ったら、[レポートの実行に使用するパラメーター]では、[追加]ボタンをクリックして、[名前]で「p1」、[値]で「[区分コード]」を選択し、[OK]ボタンをクリックします。
    image
    以上で、ジャンプ レポートの設定が完了です。
    なお、上記ダイアログで、パラメーターへ渡す値として「区分コード」を選択するには、データセットのクエリとして、次のように「区分コード」を取得しておく必要があります(Step 2 で作成した共有データセットは、区分コードを取得していないため、新しいデータセットを作成する必要があります)。
    image
  7. 設定後、レポートをレポート サーバー上へ保存します。
  8. Internet Explorer でレポートへアクセスし、ジャンプ レポートが正しく動作することを確認しておきましょう。
    image

0 件のコメント:

コメントを投稿