トピックス

知識創造研究室 by CRM(xRM)

Dynamics365 グラフのカスタマイズ(複数系列グラフ編)

みなさん、こんにちは。
以前の記事で、Dynamics365のグラフをカスタマイズする話題がありましたが、今回はまた別の例を示します。

複数系列を持つ棒グラフ

下記のように、ある企業の年度ごとの売り上げを、予算と実売を対する形で表現するグラフを作るとします。
エンティティの構成としては以下のようになっていて、「予算」と「実売」の2種類のタイプを持ち、年ごとに「予算」と「実売」の2レコードにそれぞれ金額をセットしていく形です。
以下はグラフのカスタマイズ画面です。横(カテゴリ)軸のラベルとして、「年」「タイプ」の2つを選択しています。こうすることで、年ごとに「予算」と「実売」の2本のグラフが並んで表示されているわけです。
ここで、ユーザーが「予算が左で、実売が右」という並びにしてほしいと要望してきたとします。その場合に、希望通りの順番にグラフが並ぶようにする方法を考えていきます。

方法1:ラベル名変更

「タイプ」別のグラフの並びは、このオプションセットのラベル名の昇順になっていますので、ひとつの解決策は、オプションセットのラベルの先頭に番号を付けることです。
「1_予算」「2_実売」というラベル名に変更することで、グラフの並びを希望する順番に変更することができました。

方法2:横軸の2系列目を降順にする

さらに、ユーザーが、「方法1」のラベルの「1_」とか「2_」の部分が邪魔だと思った場合を想定して、別の方法を示します。
ここではタイプが「予算」「実売」の2種類しかないので、グラフがタイプに関して降順に並ぶように指定できれば、目的の並びに変更することができます。
以下では、グラフのXMLを編集してグラフの横軸の2系列目を降順に変更する方法を実施します。(方法1で変更したラベルは、元に戻しておきます)

過去記事と同様に、「グラフのエクスポート」でXMLファイルを取得し、記述を追記・修正してから、「グラフのインポート」でXMLファイルをDynamicsに戻すことでグラフをカスタマイズします。

修正するのは、下記、entityセクションです。

<entity name="new_yojitsu_kanri">
<attribute name="new_nen" groupby="true" alias="_CRMAutoGen_groupby_column_Num_0" />
<attribute name="new_kingaku" aggregate="sum" alias="_CRMAutoGen_aggregate_column_Num_0" />
<attribute name="new_type" groupby="true" alias="_CRMAutoGen_groupby_column_Num_13" />
</entity>  

タイプに関して降順で並べるという指定をするために、orderの1行を追加します。

<entity name="new_yojitsu_kanri">
<attribute name="new_nen" groupby="true" alias="_CRMAutoGen_groupby_column_Num_0" />
<attribute name="new_kingaku" aggregate="sum" alias="_CRMAutoGen_aggregate_column_Num_0" />
<attribute name="new_type" groupby="true" alias="_CRMAutoGen_groupby_column_Num_13" />
<order alias="_CRMAutoGen_groupby_column_Num_13" descending="true" />
</entity> 

編集後のXMLファイルをインポートして更新し、グラフを再表示すると、タイプに関して降順になっていることがわかります。

タイプが2種類しかない場合に限りますが、この方法であれば、「予算」「実売」というラベル名の見た目を変えることなく、グラフの順番を変更できます。

最後に

グラフに限らず、様々なユーザーの要求に応えるためには、自分が経験した過去の事例を思い出したり、類似の事例がないか調査したりしながら、いろいろなカスタマイズの手法を駆使していく必要が出てきます。

引き続き、このブログでは、こうしたカスタマイズの事例をご紹介させていただこうと思いますので、何かの参考にしていただけますと幸いです。

この記事を書いた人
s.motokawa

2013年に某大型プロジェクトでDynamics CRMに出会い、2018年よりArtisan(Arcuss Japan)へ。
今後も様々なDynamics案件を通じて、ノウハウをさらに積み上げていきたいです。

同じカテゴリの記事

Translate »