-->

【AppSheetで在庫管理】数式で分岐を設定する

2021/02/05

Appsheet

t f B! P L

【AppSheetで在庫管理】数式で分岐を設定する

前回に続き、読み込んだバーコードが新規の商品の場合、商品登録画面に遷移する条件を作ります。条件分岐の手順は以下の通りです。前回の記事もご参照ください。


【AppSheetで在庫管理】データを抽出、そのバーコードありますか?

AppSheetで食料品の在庫管理アプリを作る。アイテムのバーコードを読み取り、既知の商品か新規のものかを判別、LINKTOFORM関数を使ってそれぞれに対応するフォームに遷移させます。


  1. 読み込んだバーコードをテーブルの「Barcode」列に記録、
  2. それを元にProductsテーブルに一致するバーコードがあるか検索し、
  3. あれば在庫情報入力フォームへのディープリンクを作成、
  4. なければ商品情報入力フォームへのディープリンクを作成
  5. ディープリンクへの遷移を実行

前回までに、1と2の設定をしましたので、今回はいよいよ3〜5です。


AppSheetのUIが変更になりました

2022年10月よりAppSheetのUIが新しくなっていますが、このブログ記事のUIは更新前のものになっています。AppSheetではUIを新旧切り替えすることが可能です。記事の画像のUIと実際のUIが異なる場合はUIの切り替えを試してみてください。切り替えは以下のボタンを押すとできます。

AppSheetの新旧UIをボタンで切り替える


IF式で条件分岐

ディープリンクは数式で設定しますので、ディープリンク記録用に作った「Destination」列の数式欄をクリックします。



Expression Assistant画面が開きますので、ここに数式を入れていきます。


さて、手順の3と4は、

3. あれば在庫情報入力フォームへのディープリンクを作成 
4. なければ商品情報入力フォームへのディープリンクを作成

ですので、ここで条件分岐します。といっても簡単に、if式を使い、

if (手順3なら、在庫情報入力フォームへのディープリンク、そうでなければ 商品情報入力フォームへのディープリンク)

という式を作ります。

条件分岐の判断は、読み込んだバーコードがProductsテーブルのBarcode列にあるかチェックすることで行います。あるデータがテーブルの列のデータと一致するかチェックするIN関数を使います。IF式にこのように書きます。


if(in([Barcode],Products[Barcode]),条件が真の場合, 条件が偽の場合)


これにより、バーコードを読みこんだ瞬間にどちらの画面に遷移するか、判定することができるようになりました。ディープリンクはDestination列に記録されますので、あとはディープリンクを作れば完成です。

ディープリンクの作成

AppSheetにはいくつかのディープリンクの関数が用意されています。「数式と関数でフィルターを作る」でもご説明しましたが、改めて、Expression Assistantでも見てみます。


見ての通り、ディープリンクでは他の行情報、ビュー、フォームだけでなく他のアプリに移動することができます。今回は、次の入力フォームに遷移させますので、LINKTOFORM関数を使います。

LINKTOFORM関数では、フォームに遷移するだけでなく、データを引数として遷移先フォームに渡すことができます。ここでは、バーコード番号や商品名などを次のフォームに引き渡すことになります。

LINKTOFORM関数の使い方

先に、バーコードが一致しない場合を考えます。この場合、Productsフォームに遷移し商品情報入力を促すことになりますが、バーコードは再入力したくないのでこれはProductsフォームに渡したいところです。LINKTOFORM関数を使い、次のように書くことにします。


linktoform("Products_Form","Barcode",[Barcode])


まず、遷移先フォームとなるProductsテーブルの入力フォーム(Products_Form)を指定します。

次に、データを渡す先の列を指定します。この場合、ProductsテーブルのBarcode列を指定します。こちらはダブルクォーテーションで囲います。

最後に、渡すデータの値を指定します。ここでは、現在のテーブル(New Inventory)の現在の行のBarcode列を指定しました。こちらはかっこ( [ ] )で囲います。

これで条件分岐の一方は、フォームの遷移先が定義されました。先ほどのIF式に作った数式を加えると、


if(in([Barcode],Products[Barcode]),条件が真の場合, linktoform("Products_Form","Barcode",[Barcode]))


となりました。

次は、条件分岐のもう一方を定義しますが、「LINKTOFORM関数を使ってデータも引き渡し」に続く・・・

シリーズ目次

素人がノーコードで在庫管理アプリを簡単に作る・・・実際に作ってみるとどうなるのか?AppSheetを使って食料品の在庫管理アプリを作ってみました。バーコードの読み取り、入庫、出庫の動きをアプリで作りながら、ポイントや気づきを中心に触れてみました。素人ですので、書いてあるよりも良い方法もあるかもしれませんが、AppSheetからアプリを使い始めるまでの流れは一通り説明しています。実際の開発時間は、夕食後の時間を使って一週間程度です。さらに続編として、入出庫履歴の記録と在庫データの表示も追加しています。

在庫管理アプリ構築編

個別処理編

Yahoo!商品検索APIから情報自動取り付け編


このブログを検索

最新記事はこちら

【Glideで簡単アプリ作成】ノーコードでかんたんカウンターアプリを作る

 ノーコードアプリの作成は簡単、というけれど実際に作るとアプリ画面の設定やテーブルの定義、イベントの設定など案外手間がかかったりするものです。ここでは、ノーコードツールのGlideを使って、簡単なアプリを簡単に作ってみます。 一日にやってみた回数をカウントするアプリを作る ここで...

ラベル

自己紹介

数学苦手な文系が、そろそろネットで何かやってみるか、という程度。のんびり、てきとーに。