ActiveReportsJSで作るデータドリブンなダッシュボード

最近、データドリブンという言葉をよく耳にしますが、これはデータを活用して意思決定を行う手法を指します。このアプローチは経営判断やマーケティング、販売、製品開発など、多様なビジネスシーンで活用されており、組織の競争力を高める上で重要な役割を果たしています。こうしたデータドリブンな意思決定には、データを視覚的に表示し、分析や比較を容易にするダッシュボード機能を備えたデータ分析ツールが不可欠となります。

JavaScript帳票ライブラリ「ActiveReportsJS(アクティブレポートJS)」においても、ビジネスシーンにおける多様なデータ活用ニーズに応えるため、V4.1Jより新たなレポート形式「ダッシュボード」を追加しました。このレポート形式では、複数のデータソースをさまざまなチャートやリスト形式で視覚的に表現でき、インタラクティブなUIを持つデータ分析ツールを構築することが可能です。

今回は、簡易的な売上データを用いて、新レポート形式「ダッシュボード」の作成方法や機能を解説していきます。

事前準備

今回はActiveReportsJSの「V4.1J(v4.1.1)」を使用します。事前準備として、あらかじめ製品版、またはトライアル版をインストールしてください。トライアル版は無料で以下より入手可能です。

また、今回使用する売上データと作成済みのレイアウトを以下よりダウンロードしてください。今回はこの売上データをベースに解説していきます。作成済みのレイアウトについては必要に応じてご確認ください。

データソースの設定

それでは、「ダッシュボード」を作成していきます。まずはじめにActiveReportsJSデザイナアプリを開き、新規レポートの作成から「ダッシュボード」を選択します。

ダッシュボードの作成

続けて、次の図のようにデザイナ上の「データタブ」ー「データソース」カテゴリ内の「+」を押してデータソースを追加します。データプロバイダに「Embedded JSON」を選択、JSONデータのファイル選択では、ダウンロードした売上データを設定後、[変更を保存]ボタンを押すとデータソースが作成されます。

データソースの設定

さらに、追加した「DataSource」の横の「+」を押してデータセットも追加していきます。図のように、ダイアログ表示後、「クエリ」-「JSONパス」へ「$.[*]」を設定、[検証]ボタンを押します。ボタンを押すと、データベースフィールド内にデータセットのフィールドが設定されますので、内容確認後に[変更を保存]ボタンを押すとデータセットが作成されます。

データセットの設定

フィルタリング機能の作成

データソースとデータセットの追加後は、ダッシュボード上でインタラクティブなフィルタリングが行えるよう、レイアウトの上部にフィルタリング機能を作成していきます。

レポートパラメータの追加

まずフィルタリング機能を実現する為に、フィルタリングを行うフィールドに対応するレポートパラメータを追加します。今回は「ProductGroup」、「Category」、「Platform」、「Month」のフィールドへフィルタリングを行いたいと思いますので、それぞれ以下のようにレポートパラメータを追加します。

レポートパラメータの追加
レポートパラメータの追加2
レポートパラメータの追加3

フィルタ用コントロールの配置

続いて、レイアウト上部へ「Container」を配置し、その中に「List」を追加します。さらに、「List」内に「TextBox」と「CheckBox」を配置します。

コントロールの追加

「List」コントロールの「データセット」プロパティに、初めに設定した「DataSet」を設定後、フィルタリング対象となるフィールドを次のようにグループとして設定します(ここではMonthフィールドを対象)。

Listコントロールの設定

さらに、「List」コントロールのレイアウトカテゴリ内の「行または列のカウント」プロパティを「6」に設定し、コントロールのサイズを以下の図のように調整します。

Listコントロールの設定2

続いて「TextBox」コントロールの「値」プロパティに「{Month}」を設定、アクションカテゴリの「種類」プロパティを「Apply Parameters」とし、「パラメータの適用」に以下のように項目を追加します。
「Apply Parameters」を設定することで、「TextBox」上に表示された値をクリックされた際に、レポートパラメータ「paramMonth」に対して、その値を設定することが可能となります。

TextBoxコントロールの設定

フィルタ用コントロールの配置の最後に、「CheckBox」コントロールの「チェックする」プロパティに次のような式を設定します。この式はレポートパラメータ「paramMonth」内に、該当フィールドの値があれば、「true」なければ、「false」を返します。式の計算結果により「CheckBox」のチェックマークの「ON/OFF」の設定が動的に行えることになります。

CheckBoxコントロールの設定

プレビューを実行すると、次の動画のようにフィルタ対象であるMonthフィールドの値がグループ化され、列挙表示されているのが確認できます。また、値をクリック(※)すると「CheckBox」のチェックマークの「ON/OFF」の動作が行われるようになり、レポートパラメータに設定が反映されていることがわかります。
※ 「TextBox」の値をクリックすることでチェックマークの「ON/OFF」動作が行われます。「CheckBox」をクリックしても対象動作は行われません。

同様の手順にて、「ProductGroup」、「Category」、「Platform」に対するフィルタも以下のように作成します。

そのほかのフィルタの作成

データ表示用レイアウト作成

フィルタの作成が終わりましたので、データ表示用のレイアウトを作成していきます。今回は動作の確認が行いやすいように、フィルタとして作成したフィールドの分類で、売上高比率の円グラフを作成したいと思います。

Chartコントロールの追加

次の画像のように、レイアウト上へ「Chart」コントロールを追加し、データセットが設定されていることを確認し、チャートの種類から「円」を選択し、[次へ]ボタンを押します。

Chartコントロールの追加

次の画面に遷移後、データ内で「項目の追加」を行い、フィールドへ「{Sales}」、集計には「Sum」を設定します。続いてカテゴリ内のフィールドへ「{Month}」を設定後、[次へ]ボタンを押します。

Chartコントロールの追加2

ウイザードのプレビュー画面で、[完了]ボタンを押し、「Chart」コントロールの追加が完了します。

Chartコントロールの追加3
Chartコントロールの追加4

引き続き、「Chart」コントロールの設定を行います。まずは次の図のようにヘッダ上のタイトルを設定します。キャプションへ「月別製品売上高」と入力します。

Chartコントロールの設定

続いて、凡例の表示位置を「Chart」の下部へ変更します。図のように凡例を選択し、向きを「Vertical」から「Horizontal」、位置を「Right」から「Bottom」へ変更します。

Chartコントロールの設定2

さらに次の図のように、プロットを選択、ラベルのテキストの「テンプレート」を「Percentage In Category」へ変更します。

Chartコントロールの設定3

ここまでで「Chart」コントロールの表示に関する設定は終了となりますので、プレビューを行ってみます。

Chartコントロールのプレビュー表示

月別の売上高比率が表示されることが確認できました。

Chartコントロールへのフィルタ設定

次に追加した「Chart」へフィルタリング機能の設定を行っていきます。次の図のように「Chart」コントロールを選択し、データカテゴリのフィルタを編集します。

Chartコントロールへフィルタ設定

編集画面へ遷移後、次の図のように「Month」フィールドへ対して、レポートパラメータ「paramMonth」に設定されている値を含むという条件のフィルタを作成します。

Chartコントロールへフィルタ設定2
Chartコントロールへフィルタ設定3

同じ手順で、「ProductGroup」、「Category」、「Platform」の条件も以下のように追加します。

Chartコントロールへフィルタ設定4

フィルタ設定がただしく動作するか、プレビューで動作確認を行ってみます。

正しく動作することが確認できましたので、次の図のように「製品グループ別」、「プラットフォーム別」、「カテゴリ別」の「Chart」を同様の手順で追加します。

その他のChartコントロールの追加

追加した「Chart」の動作確認もしてみます。

それぞれの「Chart」へも正しくフィルタリング動作が機能することが確認できました。

レポートエリアの追加

これまでに「Chart」に対するフィルタリング機能を実装しましたので、次は「Table」にも同様の機能を追加します。既にレイアウト上には「フィルタ用」コントロールと「Chart」コントロールが配置されており、スペースに余裕があまりありません。そのため、新たにタブで切り替え可能な「レポートエリア」を追加し、そこに「Table」コントロールを配置したいと思います。

まずは、図のように、これまでのレポートエリアに分かりやすい表示名を設定します。その後デザイナ下部の「+エリアの追加」を押して、新たに作成するレポートエリアを追加します。

レポートエリアの表示名設定

追加した、レポートエリアにも図のように表示名を設定します。

レポートエリアの表示名設定2

新たに作成したレポートエリア内に「Container」を配置し、その中に図の様な「Table」を追加します。追加した「Table」にも先ほど同様のフィルタ条件を設定しておきます。

Tableの追加

追加したレポートエリア内に配置した「Table」の動作を確認してみます。

タブを切り替えると、追加したレポートエリア内に配置された「Table」に対するフィルタ機能が正常に動作していることが確認できます。さらに、この「Table」はスクロール可能な状態で表示されています。この機能は新レポート形式「ダッシュボード」のみで利用可能なもので、「Container」内に「Table」を配置することで、データ量に応じてスクロールバーが表示されます。

さいごに

ActiveReportsJSの「V4.1J」から追加された新しいレポート形式である「ダッシュボード」を使用して、データドリブンなダッシュボードを作成しました。

データ分析のプロセスでは、様々な情報をインタラクティブに探索し、洞察を得ることが重要となってきます。ご紹介したActiveReportsJSの「ダッシュボード」には、インタラクティブなフィルタリングが可能な他、多くの情報を表示できる機能を備えております。ぜひ、こちらの機能を活用して、データドリブンな意思決定のサポートに役立てていただければ幸いです。

Webサイトでは、今回ご紹介したActiveReportsJSの機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。

また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /