AppSheetで在庫管理アプリ(第6回)Virtual Columnで在庫量を表示する

folder_openAppSheet

在庫管理アプリを作りながら、AppSheetの使い方を学びましょう。
前回(第5回)は「入出庫履歴」テーブルの設定をして、入出庫記録ができるようになりました。
今回は、入出庫記録で計算した在庫量を「品目」テーブルで表示してみます。
「品目」別に在庫が分かるようになり、在庫管理アプリらしくなります。

1. AppSheetならVirtual Columnを活用しよう

第2回で設定した「品目」テーブルには在庫量を保存しておく列を用意していませんでした。
在庫量は常に変動しますし、スプレッドシートをその都度上書きするのは少し手間です。

AppSheetなら、このようなデータをVirtual Columnで表示するのが便利です。
Virtual Columnは「仮想的な列」なので、在庫量が変動する度にスプレッドシートを更新する必要がありません。

在庫管理アプリでは、Virtual Columnを使って品目別の在庫量を表示してみます。
「品目」テーブルに在庫表示用のVirtual Columnを追加して設定しましょう。

AppSheetエディタ左側メニュー「Data」→「Columns」タブをクリックして、「品目」テーブルをクリックします。

AppSheetエディタで「品目」テーブルの列を設定する。

「品目」テーブルの列設定パネルが開きます。
右上の「Add Virtual Column」をクリックします。

「Add Virtual Column」でVirtual Columnを作成する。

Column nameに「在庫量」と入力します。
次に、App formulaの三角フラスコアイコンをクリックします。

App formulaの三角フラスコアイコンをクリックして、入力する。

Expression Assistantに以下の式を入力します。コピペして使えます。

IF(
 COUNT(
  SELECT(
   入出庫履歴[変更後の数量],
   [ID] = MAXROW("入出庫履歴", "_RowNumber", [_THISROW].[ID] = [品目])
  )
 ) > 0,
 ANY(
  SELECT(
   入出庫履歴[変更後の数量],
   [ID] = MAXROW("入出庫履歴", "_RowNumber", [_THISROW].[ID] = [品目])
  )
 ),
[数量]
)

この式は、前回(第5回)で設定した「変更前の数量」の計算式を少しアレンジしただけです。
「品目」テーブルからみた計算式にする必要があるので、MAXROW関数の条件式(第3引数)を

  • [_THISROW].[品目] = [品目] => [_THISROW].[ID] = [品目]

に書き換えています。
また、該当品目の入出庫履歴がない時の結果は、「品目」テーブルを省略して

  • [品目].[数量] => [数量]

に書き換えています。

Expression Assistantに入力したら「Save」をクリックして保存します。

Exression Assistantに式を入力する。SELECTとMAXROWで在庫量を取得する。

ついでに、「Related 入出庫履歴s」列の表示についても修正しておきましょう。
列設定パネルを右にスクロールしてください。

App formulaに式が設定された。

「Related 入出庫履歴s」のDISPLAY NAMEフィールドに「入出庫履歴」と入力しましょう。
右隣のDESCRIPTIONの長い文章は消去してかまいません。

「Related 入出庫履歴s」の表示名をDISPLAY NAMEで設定する。

これで大丈夫です。

DISCRIPTIONを消去する。

2. Virtual Columnで在庫量を表示する

「品目」テーブルに関連するViewを設定して、在庫量を表示してみましょう。
AppSheetエディタ、プレビューのメニュータブで「品目」を選択、ひとつ品目をクリックして選択します。
プレビュー画面下にある「View: 品目_Detail」のリンクをクリックします。

品目をひとつ選択して、「品目_Detail」を設定する。

「品目_Detail」Viewの設定パネルが開きます。
Column orderに「数量」があります。
「数量」は品目を追加する時だけ必要なので、あとは不要になります。

「数量」を「在庫量」に変更する。

「数量」をさきほど追加したVirtual Column「在庫量」に変更しました。

「数量」を「在庫量」に変更した。

在庫量が表示されていれば成功です。

在庫量が変更された。

3. 品目別の在庫量を一覧表示する

「品目」Viewも同じように変更しましょう。
AppSheetエディタ、プレビューのメニュータブで「品目」を選択します。
プレビュー画面下にある「View: 品目」のリンクをクリックします。

「品目」Viewも数量から在庫量に変更する。

「品目」Viewの設定パネルが開きます。
Column orderで「数量」を「在庫量」に変更しましょう。

Column orderを「数量」から「在庫量」に変更する。

これで終了です。

Column orderを「数量」から「在庫量」に変更した。

以上で、在庫管理アプリとしての機能はすべて完成しました。
品目マスタを追加、QRコード作成、入出庫記録、在庫量の表示ができるようになりました。

今回、品目別の在庫量はVirtual Columnを使用しているので、データソースのスレッドシートには記録されていません。
品目数が少なければ品目別在庫量を一覧したり、何か分析したりすることがあるかもしれません。

そのような場合、AppSheetにはCSV形式でデータエクスポートする機能があります。
AppSheetでエクスポートするCSVにはVirtual Columnを含めることができます。
次回(第7回)は、CSVエクスポートの方法について解説します。

Share Me!

前の投稿
AppSheetで在庫管理アプリ(第7回)CSVでデータをエクスポートする
次の投稿
AppSheetで在庫管理アプリ(第5回)コードをスキャンして入出庫記録

関連記事

メニュー