今回は、2023年12月 (Client-Managed 版では February 2024以降) に新しく追加された「レイアウトコンテナ」について紹介します。
作成したオブジェクトをPowerPointのように自由に配置したり重ねたりできるものです。今まで以上にデザイン性の高いダッシュボードを作成することが可能になりました。
以下の例では、売上の棒グラフと利益の棒グラフを2つ重ねて、あたかも1つのチャートであるかのように表現しています。
[アセットパネル] > [カスタムオブジェクト] > [Qlik Dashboard bundle] から、 [Layout container] をシートにドラッグします。
[コンテンツを追加] を押下し、[チャート] から任意のオブジェクトを作成します。今回は散布図を作成します。
チャートのサイズ・位置を変更します。方法は以下の2種類です。
レイアウトコンテナ内のビジュアライゼーションを編集します。[プロパティの編集] を押下すると、チャートの軸やメジャー、スタイルなどを編集することができます。
ビジュアライゼーションを削除するには、[削除] を押下します。
レイアウトコンテナのタイトルやホバーメニューを設定します。必要であれば並列ステートの設定も行います。
[スタイル指定] から、レイアウトコンテナのタイトルのフォントや背景、境界線、影を設定します。
[チャートを内部に保つ] は、チャートをレイアウトコンテナ内に完全に収める設定です。
[グリッド線を表示] をオンにすると、コンテナ内にグリッドが表示されます。視覚的にチャートをそろえて配置できるようになります。
レイアウトコンテナの [コンテンツ] から [追加] を押下します。
散布図を作成したときと同じ手順で、任意のオブジェクトを作成します。今回はⅱの4オブジェクトと、ⅲの4オブジェクトを作成しました。
オブジェクトの順序を並べ替えます。上に位置しているほどレイアウトコンテナの上層に、下に位置しているほどレイアウトコンテナの下層に配置されていることになります。
作成したオブジェクトを画像のように重ねて配置します。売上と利益の金額に応じたランクを表現することができました。
例えばこちらのダッシュボードで、横棒グラフを拡大して全体を見たい、という時。
おそらく通常はホバーメニューの「全画面」で拡大表示をすると思います。しかしレイアウトコンテナ内に配置したオブジェクトでは「ホバーメニュー」が機能しません。
※レイアウトコンテナ自体のホバーメニューは使用できますが、レイアウトコンテナ内のオブジェクトすべてが拡大の対象になります。
ただ、オブジェクトを拡大して確認したい、というシチュエーションは多々あるかと思います。
というわけで、応用編では「オブジェクトを拡大できない問題」を、レイアウトコンテナの機能を使用して解決していこうと思います。
変数を作成します。(名前:vEnlarge_chart、説明:チャート拡大表示用、定義:0)
レイアウトコンテナ内にボタンオブジェクトを配置します。[追加] > [ボタン] から追加してください。また、ラベルに「売上金額_拡大ボタン」と入力します。
ボタンの動作設定を行います。[プロパティの編集] > [アクションとナビゲーション] > [アクションの追加] から以下の設定を行ってください。
ボタンのビジュアルを整えます。[スタイル] から以下の設定を行ってください。
拡大後に表示したい棒グラフを複製し、画面全体に配置します。ここでは「売上金額_拡大用」とします。
5.で複製した棒グラフの [売上金額_拡大用] > [条件の表示] に、「=vEnlarge_chart='売上'」と入力します。(「1.の変数 = 3-ⅲの値」を用いています。)
2.~4.を繰り返し、今度は縮小用のボタンを作成します。相違点は以下の3つです。
7.で作成した [売上金額_縮小ボタン] > [条件の表示] に、「=vEnlarge_chart<>0」と入力します。
以上です。編集モードを終了してボタンを操作すると、棒グラフが拡大 ↔ 縮小します。1.~の手順を繰り返すと、「利益 | ランキング」の棒グラフも同様に拡大 ↔ 縮小できます。
基礎編・応用編の内容から、以下画像のようなデザイン性の高いダッシュボードが作成可能になります。画面左側のような「メニューバー」を作成することも可能です。
※以下は実際に Qlik AI Reality Tour Tokyo のイベントで使用した、弊社オリジナルのダッシュボードです。(上:拡大前、下:拡大時)
本記事で解説してきたようにレイアウトコンテナを用いると、かなりデザイン性が高く、高機能なダッシュボードを作成することができます。簡単に使用することができるので、この機会にぜひ試してみてください。