本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。
本ブログでは新UI画面で内容をまとめています。
新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)
まずはじめに
- appsheetで実用レベルの在庫管理アプリを作成したい人
- appsheetに用意されている基本的な機能を幅広く理解したい人
- 入力した数値の計算を自動で行う関数の考え方についてわかる
- Automationでその日入力したログを自動で取得する設定
今回の記事は在庫管理アプリの作成手順についてです。
appsheetで検索をするとサジェストで在庫管理が表示されますね(^^)
それだけappsheetで在庫管理アプリを作成したい人が多いということですね。
私の職場環境では在庫管理アプリの需要がないので、ほとんど想像での作成になりますが
当ブログの方針である“簡単で汎用性の高い設定を読者の方に提供する“を叶えたいと思います!
在庫管理アプリの作成手順ですが、大まかに以下の流れで作り込んでいきます。
スプレッドシートに必要なカラムを用意して、appsheetにデータを送りデータの型を選択
初期画面に必要なViewの作成
使い勝手のいいアプリを作成するための準備
アプリ動作の画面の完成
毎日定刻になったらデータを自動でログ管理する仕組みの構築
今回の記事内容はかなりハイレベルな内容です
appsheetですでにいくつもアプリを作成した経験のある人向けに記事をまとめています。
わからないところはコピペで構いませんので、一度最後までやってみることをおすすめします(^^)
それでは勉強していきましょう!
参照データの準備とデータタイプの修正
今回の在庫管理アプリ作成のために用いたシートは3つです。
それぞれのシートの説明をします。
各カラムのイメージは以下のとおりです。
- ID:Key値
- 商品:商品マスターとref関係を結ぶ
- 入出庫区分:入庫と出庫を分ける
- 増減個数:入庫数もしくは出庫数
- 計算結果:増減前の個数と増減個数の計算をする
- 日付:データを入力した日を記録する
このシートは商品管理シートのカラム値を転写するために存在しています。
各カラムのイメージは以下のとおりです。
- 商品:商品管理シートの商品カラムとref関係を結ぶ
- image:登録商品の写真を記録する
読み込ませるデータの準備が整ったらappsheetにデータを送ります。
データタイプの修正
続いてデータタイプの修正を行います。
まずは商品管理シートから確認します(^^)
このカラムは商品名を登録するので、参照先のテーブルは商品マスターとします。
このカラムで商品の入庫と出庫を決定します。
入庫と出庫の区別は入出庫区分カラムで行っているため、このカラムには整数のみ入力できます。
Valid ifに[_this]>0を入力することで1以上の整数のみ入力を受け付けるようになります。
any(select(商品管理[計算結果],[ID]=maxrow(“商品管理”,”_rownumber”,[商品]=[_thisrow].[商品])))
+if([入出庫区分]=”入庫”,[増減個数],[増減個数]*(-1))
上記関数を入力することにより、データ入力される前の各商品の最新在庫数を抽出しつつ、これから登録される増減個数の計算を自動で行ってくれます。
データを入力するのはその日なので、初期値にtoday()を入力しておきます。
データタイプはNumberを選択し、App formulaには以下の関数を入力します。
any(select(商品管理[計算結果],[ID]=maxrow(“商品管理”,”_rownumber”,[商品]=[_thisrow].[商品])))
ここで計算結果カラムに入力した関数について説明します。
select()関数とif()関数の使い方に自信がない人は、先にこちらの記事を見てみてください
select()関数の使い方、引数の渡し方について詳しくまとめています(^^)
【これで解決!】select()関数の使い方
条件分岐で返す値を変えたいときに使用する関数です(^^)
【永久保存版】appsheetで覚えておくべきConditional関数
先に前半部分の関数の説明をします。
select()関数の第二引数はフィルター条件式(Yes/Noで答えられる)を入力する必要があります。
フィルター条件式に指定したmaxrow()関数の基本的な使い方は以下です。
引数の渡し方を把握しつつ、下図を参考にしてください(^^)
続いて、後半部分のif()関数の説明をします。
こちらの関数がやっていることとしては
- 商品が入庫されたらその個数を足し算する
- 商品が出庫されたらその個数を引き算する
になります。下図にその説明をまとめました(^^)
それでは残りのシートもさくっと設定を更新しましょう(^^)
計算結果カラムがNumber型、日付カラムがDate型にすればOKです。
imageカラムがimage型になっていればOKです。
これでカラム設定は完了です。お疲れさまでした(^^)
商品マスターシートに商品を登録する
続いて、在庫管理アプリに登録する商品を登録します。
この記事では商品をカレーライス、ドーナツ、お好み焼きとします!
以下の流れで実装していきましょう(^^)
For this dataは商品マスターシートを選択します。View typeはdeckがおすすめです。
商品マスターのViewがない場合は、Add Viewから新規に追加すればOKです!
商品マスタータブのAddから登録をします。
登録した商品のイメージ
この登録した商品を商品管理に登録をしてみましょう。
For this dataは商品管理シート、View typeはformを選択します。
STEP.3で作成したForm Viewから商品を登録します。
初期のViewでは過去に登録された情報も含めて表示されるため
最新の情報のみ表示させるViewを作成しましょう(^^)
スライステーブルを作成します
Row filter conditionには[日付]=today()を入力しています
作成したスライステーブルで新規にViewを作成します。
For this dataには先ほど作成したスライステーブルを指定します。
プレビューのデータテーブルには現在の在庫数が表示されています。
- Group byに商品と_RowNumber
- Group aggregateにAVERAGE::現在の在庫数
を指定します。
これでViewの設定は終了です。お疲れさまでした(^^)
Automationで本日登録したデータのログを残す
最後にオマケ要素としてテーブルの情報を別のテーブルにコピーする方法を紹介します。
このアプリでは必要ないと思いましたが、別のアプリでは使える内容なので
この機会にぜひマスターしていただければと思います。
それでは手順を説明していきます(^^)
赤枠で囲まれた部分の設定が必要です。
- For a record of this table:アクションをセットするテーブル(今回はメインテーブルの商品管理シート)
- Do this:add a new row to another table〜を選択
- Table to add to:For a record〜のテーブルから値を送る先のテーブル(今回はログ管理シート)
- Set these columns:送り先のカラムに送りたい値を入力(今回は商品管理のカラム値を送る設定)
また、このアクションボタンは表示する必要がないため Do not displayの設定推奨です。
赤枠で囲まれた部分を参考にして設定をしていきます
Run a data actionを選択してSTEP.1で作成したアクションをセットします。
アクションをセットすると画面右の青枠で囲まれた部分が自動で入力されます。
この3ステップでどんなアプリでもログを残すことが可能です(^^)
まとめ
以上、在庫管理アプリの作成方法でした。
別の記事で日々の進捗を折れ線グラフでまとめる方法もまとめていますので、
この記事の内容と組み合わせると管理レベルの高いアプリが作成出来ると思います(^^)
他にもデータタイプXYを用いてどの商品がどこに置いてあるか?
などを管理してみるのも面白いと思います。
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)
引き続き勉強したい方は、こちらの記事を参考にしてください
ログを残すことで折れ線グラフを作成する方法を学べます(^^)
【上級者向け】appsheetで折れ線グラフを作る方法
フロア在庫を記録する方法を学べます(^^)
【意外に簡単?】データタイプXYの使い方
Kさんありがとうございます。Kさんのブログを見て、私もAPPSheetにチャレンジしています。不明な点があります。「商品マスターシートに商品を登録する。商品マスターテーブルを参照するViewを作成する。」が、どの画面の、どの操作かわかりません。お手数でも詳しく教えて頂けませんでしょうか?
コメントの確認が遅れてしまい、申し訳ございません!
記事の写真を更新したので、参考にしてください(^^)