東京都オープンデータソースAPIを活用してみると題し、数回に分けてオープンデータをローカルデータベースに保存するところまでを記事にしてきました。
今回は、おまけ
としてデータベースに貯まったデータを元にレポートを作成するところを記事にしてみようと思います。
Webレポート
早速Sharperlightアプリケーションメニューからパブリッシャーを起動します。
新規
ボタンで新しいレポートの作成を開始します。
一般タブ
ここでは、コード、グループ、タイトル、レポートのタイトル等を記入します。
クエリを編集
パブリッシャーで作成するWebレポート(公開クエリともいう)には、1レポート1クエリという原則があり、必ずクエリを作成しなくてはいけません。よってクエリを編集
ボタンでクエリビルダを起動しクエリのデザインを行います。
フィルター
製品
フィルターには、このシリーズで作成したデータモデルを指定します。そしてテーブル
には、取得したデータが保存されているテーブルをこのように指定します。
選択領域
テーブルが指定されるとSharperlightエンジンは、そのテーブルに付随するフィールド一覧を指定されているデータモデルから、選択領域に展開表示します。
出力領域
ここにはどのフィールドのデータをクエリ結果として抽出するかを指定します。
今回は、棒グラフ用のデータを準備しようと考えているので、ラベルになるようなフィールドとそれに関する集計値を準備します。
年代別に患者数を集計してみましょうか。
選択
領域からドラッグ&ドロップ、あるいはダブルクリックで年代フィールドを出力
領域に設定します。
次に年代別患者数は、Row_IDフィールドをカウントするといったイメージで定義します。
Row_IDフィールドを出力
領域に設定して、右クリックメニューから説明の変更を選び、患者数とタイプします。
ダブルクリックでオプションダイアログを開きます。関数
タブの集計属性でカウントを指定します。
ここで一度クエリ結果を確認してみます。プレビュー
ボタンで行います。
集計は上手く出来ているようですが、年代フィールドの値が文字列なので並び替えが少し変ですね。
並び替えが行えるように拡張表現を利用して数値に変換します。
出力
領域の右クリックメニューから拡張表現を追加を選択します。
データ型
をIntegerに設定。以下の構文を拡張式関数の構文
に記述します。
Switch( {%年代}
,"10歳未満",9
,"10代",10
,"20代",20
,"30代",30
,"40代",40
,"50代",50
,"60代",60
,"70代",70
,"80代",80
,"90代",90
,"100歳以上", 100
,999)
一般
タブに移動して、出力参照名
と説明
をSortingとします。また視認性
オプションを非表示とします。これはこの拡張表現フィールドが、並び替えを行うためだけに作成されたので、その値を表示する必要がないためです。
最後に並び替えとグループ化
タブに移動して、当拡張表現フィールドを並び替えあり
領域に設定します。OK
ボタンで確定します。
最終的に出力領域の設定はこのようになります。
ではプレビューしてみましょう。
どうですか?並び替えが正しく行えていますね。
OK
ボタンでクエリを保存します。
グラフタブ
グラフ
タブでは4箇所のみを設定し、その他の属性は既定値のままとします。
オプションタブ
オプション
タブでは既定の出力形式
をChartに設定します。
このレポートにこのようなURLでアクセスした場合、テーブルではなくグラフが表示されるようになります。
http://{サーバー名}/mdService1Rest/Report/?query=QiitaSample.TKYCov19Age
既定の出力形式
をTableに設定した状態でグラフとして表示したい場合は、このURLを使用することができます。URLの最語尾に&rtype=chartを付与します。
http://{サーバー名}/mdService1Rest/Report/?query=QiitaSample.TKYCov19Age&rtype=chart
検証
http://{サーバー名}/mdService1Rest/Report/?query=QiitaSample.TKYCov19Ageをブラウザからアクセスしてみます。もちろんSharperlightサービスが起動されている必要があります。
更にいくつかレポートを作成して、配置
オプションを使用してこのようなレポートが作成できました。あくまでもサンプルです。
Exceレポート
次に、Sharperlight Excelアドインを使用してExcelでレポートを作成します。
Excelを起動します。SharperlightがインストールされるとExcelアドインも設定されています。
されていない場合は、SharperlightアプリケーションメニューからExcelアドインをインストールを実行します。
新しいワークシートを開きます。Sharperlightリボンを確認します。
先ほどのWebレポート用に作成してクエリを再利用します。
セルB5を選択し、リボン上のテーブル
アイコンをクリックします。お馴染みのクエリビルダが起動します。
フィルター領域の右クリックメニューよりクエリのインポート -> パブリッシャーを選択します。
パブリッシャーで作成されたWebレポートの一覧が索引
ダイアログに表示されます。値
テキストボックスに検索ワードQiitaSample%(レポートのユニークコードが"QiitaSample"で始まるレポートを検索します)を入力し、更新
ボタンを押します。
レポートが絞り込まれるので、目的のレポートを探し出してダブルクリックで選択します。
選択したレポートに定義されているクエリが作業中のクエリビルダに転送されます。
OK
ボタンでクエリを確定、実行します。クエリ名の入力を促されるので、クエリ名を入力しOK
ボタンで先に進みます。
Excelワークシート上にテーブルが表示されます。最初に選択したセルB5にSharperlightテーブル式が作成されます。
同じようにしていくつかテーブルを作成してみます。後はExcelのチャート機能を利用してチャートを作成したりします。
では、失礼します。