SSRS で新規陽性者数の推移グラフを作ってみる【第2回】
前回の続きです。今回は、とりあえず見栄えは気にせず最短距離でグラフを作成してみます。グラフ作成の元ネタとして厚生労働省のオープンデータ(CSVファイル)を利用しますが、その準備として別記事である「ACE エンジン 経由で CSV ファイルを SQL で読み込む」ができるようになっていることが前提になります。
記事中で利用しているファイルは以下から取得してください。 こちらが本家です。
レポートビルダーのインストール
レポートビルダーは、マイクロソフトのダウンロードサイトから取得します。
Download Microsoft® レポートビルダー from Official Microsoft Download Center
タイトルがなぜか韓国語(笑)ですが、インストールしたものは日本語なのでご安心を。

ダウンロード後、そのままインストールします。途中、以下のような画面が出てきますが、 前回に構成した「Web サービス URL」を入力しておきます。単なるデフォルト値なので入力しなくても大丈夫ですし、あとから後から設定することも可能です。

レポートビルダーの起動
前回の最後に構成した Web ポータル URLより開始します。「+」メニューより「ページ分割されたレポート」を選択します。

初めての実行時には警告が出たりしますが、気にせず進めるとレポートビルダーが起動します。
グラフを作成したいのでグラフウィザードを選びたいところですが、ウィザードは本来やるべき作業を規定値で省略していたりして、結果的にツールに対する理解が深まらないという欠点がありますので、敢えての「空のレポート」を選択します。

以下のようにまっさらなレポートが表示されました。

データソースの作成
最初にデータソースを作成します。「データソース」とは、レポートの元ネタを取得するデータベース等への接続情報を指します。左ペインの「データソース」上で右クリック→「データソースの追加」を選択します。

データソースは他のレポートと共有できますが、今回は最短距離ということで、このレポートに定義を埋め込みます。「レポートに埋め込まれた接続を使用する」を選択して「接続の種類の選択」では、SQL Server を選択してください。

接続文字列を入力してください。「ビルド」ボタンよりGUIベースで接続文字列を作成することもできます。
私の環境は SQL Server が同居しているので接続先は localhost です。尚、資格情報(接続の際に利用されるユーザ情報)も適切に入力してください。デフォルトは「現在の Windows ユーザーを使用する」です。専用のユーザを用意している等があれば、そちらを設定するようにしてください。

データセットの作成
次にデータセットを作成します。「データセット」とは「データソース」で接続した先から取得するデータの集合体(相手先がデータベースであればテーブル等)を指します。左ペインの「データセット」 上で右クリック→「データセットの追加」を選択します。

データセットもデータソースと同じく他のレポートと共有できますが、こちらもレポートに埋め込みとします。「レポートに埋め込まれたデータセットを使用」を選択します。
「データソース」には前項で作成したデータソースを選択し、「クエリデザイナー」を選択します。Access のようにテーブルを結合したり、色々できるデザイナーですが、ばっさりと省略し、「テキストで編集」を選択します。

上部テキストエリアには関連記事「ACE エンジン 経由で CSV ファイルを SQL で読み込む」の最後のSQLを設定し、実行ボタン(!マーク)を選択してその SQL の実行結果を確認します。
SELECT * FROM CSVFILES...newly_confirmed_cases_daily#csv;

データが正しく取得できていれば、OKボタンで元画面に戻ります。最初から SQL がわかっていればクエリデザイナーは不要ですが、SQLが正しいかどうかを含めて確認できるので、クエリデザイナーはそれはそれで便利だと思います。

これでデータソースに引き続き、データセットができました。

グラフの作成
グラフの挿入
デザイナー上に表示されているのは白いキャンバスと同じで、こちらに色々と部品を貼り付けながら全体のレポートを作成していきます。今回は最短距離でグラフを作るので、レポート上で右クリック→「挿入」→「グラフ」を選択します。

作成するのは、前回書いた「新規陽性者数の推移(日別)」のグラフです。これは縦の棒グラフなので、そちらを選択します。

グラフとデータセットの関連付け
グラフの大きさの調整、タイトル入力(フォントに注意しないと文字化けします)、ページフッタ削除を行っておきます。また、今回ターゲットにしているレポートはグラフのタイトルとグラフとの間にテキストボックス等が入るので、グラフに付属している「グラフのタイトル」のテキストボックスは削除しておきます。
次に、グラフとデータセットの関連付けを行います。挿入したグラフを選択状態にして右クリック→グラフのプロパティを選択します 。

まず「全般」→「データセット名」にて前項で作成したデータセットを選択します。

ここで、このデータセットをどのように集計し、グラフにするのかをイメージします。SQL で表すとこんな感じで、縦軸に「SUM(新規感染者数)」で、横軸が「日付」ですね。
SELECT 日付,SUM(新規感染者数)
FROM データセット
WHERE 都道府県='ALL'
GROUP BY 日付;
尚、データセットの中身を見てもらえばわかりますが数値は都道府県別です。次回以降でここは切り替えられるようにしますが、とりあえず全国(都道府県=ALL)を対象とします。この WHERE 句相当が「フィルター」設定です。以下のように絞り込み条件を設定しておきます。

グラフデータの設定
データセットとの関連付けができたのでグラフデータ(縦軸と横軸)となる項目を設定します。
まず縦軸。これは前述の通り「SUM(新規感染者数)」を設定したいので、グラフデータの「値」の右にある「+」ボタンから「新規感染者数」を選択します。集計はデフォルトが Sum なので、何もしなくても 「SUM(新規感染者数)」 になります。

グラフデータの「カテゴリグループ」が横軸に当たります。ここにはデフォルト「(詳細)」というカテゴリグループが設定されていますので、これを変更するため右の「▼」ボタンより「日付」を選択します。

レポートの実行
これで縦軸、横軸の値も設定できましたので実行してみます。ホームメニューから「実行」ボタンを選択します。

軸ラベルの間隔や表記がすべてデフォルトの状態でグラフが表示されたと思います。

レポートの保存
とりあえず今回はここまでで、最後にこのレポート定義を保存します。ファイル→保存を選択します。

レポート名を入力して保存します。保存先がレポートサーバーになっていることを確認します。
保存したら、最初に確認した Web ポータルにレポートが追加されているのがわかると思います。

ここをクリックすればグラフ表示されます。これをそのまま利用者に公開するイメージです。
(もちろん、フォルダを作成したり、細かい権限設定もできます)
ディスカッション
コメント一覧
まだ、コメントがありません