Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Valence 複合グラフ作成方法

Valence6.0 v20210511.1よりColumn Chart ウィジェットに複合グラフを表示する機能が追加されました。棒グラフと線グラフの両方を表示することで、情報をより視覚的にわかり易く表示することができます。本記事では、複合グラフを作成する方法についてご紹介します。

複合グラフとは?

複合グラフは棒グラフと線グラフのように、異なる種類のグラフが重なったグラフのことを指します。
比較と推移のような意味合いが異なる情報を同時に表現することができます。

Valence6 v20210511.1よりColumn Chartに線グラフまたは、範囲グラフと同時にグラフ表示することができるようになりました。

複合グラフの作成方法

例) 月売上合計と売上累計の複合グラフ

月売上合計と売上累計の複合グラフを表示する例で説明します。

App Builderのアプリケーションを作成する場合、まずデータソースを作成します。
データソースはウィザード形式で簡単に作成する方法が通常の手順となります。

今回の場合は、ファイルに存在しない累積売上のデータを取得するため、自由形式のSQLでデータソースを作成します。

  • 売上トランザクションファイル: VALENCEDM/DMCRSSP
  • 売上日:CRDATEフィールド
  • 単価 :CRSHTNフィールド
  • 数量 :CRHNSUフィールド

上記のようなトランザクションファイルから月別売上と累積売上の情報を取得する場合、月別売上をGroup by句で取得します。そして、累計売上もサブクエリにより、月別売上の集計から算出することができます。

SQLを直接記述してデータソースにするには、「データソース & ウィジェット」画面の右下にマウスカーソルを移動した際に表示されるアイコンから、「自由形式のSQLステートメントを入力」のアイコンを選択してください。

月別売上と累積売上を算出するSQL(With句を使用)

WITH TEMP AS (
  SELECT
    MONTH(F1.CRDATE) AS MON,
    SUM(F1.CRSHTN * F1.CRHNSU) AS URIAGE
  FROM
    VALENCEDM/"DMCRSSP" AS F1
  GROUP BY
    MONTH(F1.CRDATE)
)
SELECT
  F1.MON AS F1_MON,
  F1.URIAGE AS F1_URIAGE,
  SUM(F2.URIAGE) AS RUISEKI
FROM
  TEMP AS F1
  INNER JOIN TEMP AS F2 ON F1.MON >= F2.MON
GROUP BY
  F1.MON,
  F1.URIAGE
ORDER BY
  F1.MON

上記SQLでは、With句を使用して、売上月と月別売上をGROUP BY MONTH(売上日)を使用して算出します。
With句でTEMPという結果ファイルが作成されるため、Withの後に続くSQLでは、TEMPを利用して月別の累計を算出するSQLをGROUP BY (売上月) , (月別売上)にて算出します。

With句(サブクエリ)を利用するとRPGを使用しなくても、算出したい表が作成できる場合が多いため、是非使用方法をご理解頂きたいと思います。

これで、売上月、月別売上、累積売上が算出するデータソースを作成できました。

次に、データソースへウイジェットを追加します。作成したデータソースで「ウィジェットの作成」を選択後「Column Chart」を追加してください。

ウィジェットを追加後、Column Chart の「設定」で「データフィールド」、「ラベルフィールド」を設定してください。

Column Chart の左側メニュー「設定」選択後、右側の「データ」にて、データフィールドへ複数の項目を追加すると、2番目以降の項目をどのように表示するかを選択できるプルダウンが表示されます。

デフォルトでは棒グラフが表示され、Area(範囲グラフ)、Line(線グラフ)を選択することで作成できます。

それぞれ、以下のように表示できます。

売上の桁やラベルフィールドの表示に単位を設定すれば、複合グラフのウィジェットは完成です。