SSRS で新規陽性者数の推移グラフを作ってみる【第3回】

第2回からの続きです。現在できてるレポートを確認してみます。

現時点でのレポート

第1回で書いたように最終的には以下のようなイメージにしたいと思っています。

目標とするレポート

今回は上記の黄色枠のところ、レポート上部の「情報更新日」の表示と、縦横の軸の表示を合わせていきたいと思います。尚、この「情報更新日」ですが、実際の仕様はわからないので推測でしかないのですが、データセット内にある日付の最大値であるものと考えられます。横軸も「情報更新日」からの相対値によって決まるので、レポート全体の共通の「変数」として定義してみたいと思います。

記事中で利用しているファイルは以下から取得してください。 こちらが本家です。

レポートビルダーを起動

Web ポータルから前回保存したレポートの右上「…」ボタンより「レポートビルダーでの編集」を選択します。

レポートビルダーの起動(1)

以下のようにレポートビルダーが編集モードで開きます。

レポートビルダーの起動(2)

情報更新日を表示

テキストボックスの配置


まずは情報更新日を表示するテキストボックスを配置してみます。レポート全体の大きさを変えて、グラフとタイトルの間に余白を作成し、右クリック→「挿入」→「テキストボックス」で配置します。

テキストボックスの配置(1)

ラベルの部分と日付表示部分は別のテキストボックスとして配置します。
実際はひとつのテキストボックスで表現可能ですが、今回は分けてみます。

テキストボックスの配置(2)

変数の定義

次に変数「情報更新日」を定義します。変数には、普通のプログラムと同様に「スコープ」が存在します。レポートのプロパティやグラフデータのカテゴリプロパティ等でも「変数」が定義でき、どこに定義するかでスコープが決まります。今回は、レポート全体で良いので、レポートの外側に右クリック→「レポートのプロパティ」で定義します。

変数の定義(1)

レポートのプロパティで「変数」を選択し、「追加」ボタンにより名前を”情報更新日”とした変数を作成、その後、「式」ボタン(fx)ボタンを選択します。

変数の定義(2)

カテゴリ「データセット」→アイテム「DataSet1」→値「First(日付)」をダブルクリックします。

変数の定義(3)

この状態ですと、データセット(DataSet1)の項目「日付」の最初の値(First(日付))が表示されるので、ここはMaxに書き換えます。

変数の定義(4)

ここで「OK」ボタンで式は確定します。これで変数定義ができました。今回、サラっと Max に書き換えましたが、式に関する正式なリファレンスは「式のリファレンス (レポート ビルダーおよび SSRS)」にありますので参考にしてください。

プレースホルダーの作成

前項で定義した変数をテキストボックス上に定義していくわけですが、変数等を使って実行時に値を決めるための領域を「プレースホルダー」と言います。追加したいテキストボックス内をアクティブにした状態で右クリック→「プレースホルダーの作成」を選択します。

プレースホルダーの作成(1)

プレースホルダーのプロパティでは表示する値とそのフォーマットを定義します。まずは「値」のところで「式(fx)」ボタンを選択します。

プレースホルダーの作成(2)

カテゴリ「変数」→アイテム「すべて」→値「情報更新日」をダブルクリックすると以下のコードが貼り付けられます。変数の参照方法が、"Variables!変数名.Value"ってことなので、この参照方法がわかれば、直接コードを記述しても問題ありません。

=Variables!情報更新日.Value
プレースホルダーの作成(3)

このまま「OK」ボタンでプロパティ画面に戻り、今度は「番号」タブから、表示する日付のフォーマットを選択します。このあたりは Excel の書式設定と似ているのでイメージ沸くとは思います。

プレースホルダーの作成(4)

「OK」ボタンで確定します。プレースホルダーは実行時に表示されるものなので、デザイン上は「<<式>>」としか表示されません。(ただし、プレースホルダーのプロパティで「名前」を入力すると「<<式>>」の代わりにその名前が表示されます。)
実際に値が取れているかどうかは「実行」してみないとわかりません。

プレースホルダーの作成(5)

情報更新日(データセットの日付の最大値)が表示されているようです。

軸の表示設定

横軸のプロパティ設定

最初に横軸の表示形式から設定していきます。まず横軸のエリアを選択状態にして右クリック→「横軸のプロパティ」を選択します。

横軸のプロパティ設定(1)

「軸の種類」は軸の最小・最大が入力できるよう「スカラー」にします。また、間隔は3か月となるようにします。

横軸のプロパティ設定(2)

「最小値」を「式」ボタン(fx)から設定します。 ここの値は「情報更新日」から遡ること1年前にしたいです。これは計算でないと求まりません。「式」ボタン(fx)から表示される設定画面は、このあたりの関数も選択できるようになっているので便利です。「共通の関数」→「日付と時刻」→「DateAdd」をダブルクリックします。

横軸のプロパティ設定(3)

レポートビルダーの式で利用できる関数は実は「VisualBasic」で利用できる関数そのままのようです。

isual Basic の関数を使用して、テキスト ボックスに表示されるデータや、レポートのパラメーター、プロパティ、または他の領域に使用されるデータを操作できます。 ここでは、このような関数のうち、いくつかの例を紹介します。 各関数の詳細については、MSDN の「 Visual Basic ランタイム ライブラリのメンバー 」を参照してください。

式の例 (レポート ビルダーおよび SSRS)

そこで DateAdd のリファレンスを参考にして、情報更新日から一年前を定義します。

=DateAdd(DateInterval.Month, -12, Variables!情報更新日.Value)
横軸のプロパティ設定(4)

次に、軸ラベルの表示形式を設定します。「数値」から「ユーザ定義」でカスタム書式「MM/dd」を指定します。

横軸のプロパティ設定(5)

「最大値」については「自動」のままでデータ内の最大値が採用されるため何も設定しなくて良いです。
これで横軸のプロパティの設定が終わりました。デザイン上は、あくまでもイメージが表示されているだけなので、実際にどうなるかは、やはり実行してみないとわかりません。

横軸のプロパティ設定(6)

どうやら意図したような表示になったようです。

横軸のプロパティ設定(7)

縦軸のプロパティ設定

最後に縦軸のプロパティ設定をします。 縦軸エリアを選択状態にして右クリック→「縦軸のプロパティ」を選択します。

縦軸のプロパティ設定(1)

目標のグラフのホンモノの動きを見る限り、値によって縦軸のメモリは変化しているようですが、ここは固定にしておきます。最大値は 30,000 で、間隔は 50,000 にします。

縦軸のプロパティ設定(2)

ラベルのフォーマット指定も行っておきます。

縦軸のプロパティ(3)

これで縦軸のプロパティ設定は完了です。実行してみます。

縦軸のプロパティ(4)

意図した通りに表示できました。今日はここまでです。保存するのを忘れないようにしてください。

縦軸のプロパティ(5)

BISQLServer,SSRS

Posted by takmaru