Glideでノーコードで塾の予約アプリを自作するシリーズ、今回は予約やキャンセルで増減するチケット数の管理について、作業中のテーブル以外のテーブルの値を変更する方法を説明します。
なお、前回はロールアアップ機能についてご説明しましたので、こちらもご覧下さい。【自分で作るGlide】7:ロールアップ(Rollup)の使い方−ノーコードで塾の予約管理アプリを作る
Glideでノーコードアプリを自作してみるシリーズ。今回は、ロールアップ機能を使ってテーブルのデータの数を数えます。ロールアップを適用した列の、行ごとにデータ数をカウントします。
ユーザーごとのチケット管理
ユーザーのチケット管理は、チケットの購入・予約で残りチケット減少・キャンセルして返金(残りチケット増加)、となります。
チケット数については、Userテーブルの各ユーザー行で管理されます。
予約してチケット残を減少させる
予約時のアクション
まずは予約時に残りチケットを減少させる方法を考えます。予約ボタンを押したときに、予約ユーザーのチケット数を1枚減少させます。
予約ボタンに対応するアクションを追加し、Usersテーブルのチケット数を減少させるのが簡単そうですが、予約ボタンはレッスンテーブルの画面で配置されているので、Usersテーブルを直接変更することができません。
そこで、少し手間がかかりますが、レッスンリストにユーザーを記録し、Usersテーブルの関連する行のチケット数を増減させることにします。
予約時に残りチケットを減少させる
まず、レッスンリストに列を追加します。予約作業中のユーザーIDを記録する「現在のユーザー」列と、そのユーザーとUsersテーブルを関連づけるRelation列です。Relationは現在のUserのユーザーIDとUsersテーブルのUser IDを関連づけます。
次に、予約ボタンのアクションを修正します。レッスンリストの行に作業中のユーザーIDを記録します。
試しに予約ボタンを押してみます。レッスンテーブルは以下のようになりました。
作業テーブル以外の列の値を変える
次に、Usersテーブルのユーザー行にある、「受講券残高」列の値を減らします。ところで、Incrementアクションは列の値を減らすこともできますが、作業中のテーブル以外のテーブルを操作することはできません。ここでは、作業中のレッスンテーブルからUsersテーブルの値を変えようとしていますので、Incrementアクション以外の方法にする必要があります。
そこで、Usersテーブルに列を追加し、チケットが一枚減った後の残高を計算し、その値をチケット残高にコピーすることにします。まず列を設定します。
列は計算式用のMath型を設定します。Math型で計算できる演算子は多くはありませんが、四則演算は問題ありません。参照する列は、列の名前をそのまま入れます。
そして、アクションでこの列の値を「受講券残高」列に上書きします。これにより、受講券残高の値が一つ減って更新されます。
予約ボタンを押して挙動を確認する
実際に予約ボタンを押して挙動を確認してみました。チケット残高が一枚減少、その隣のチケット減少列も一枚分減少していることがわかります。
キャンセルの場合はチケット残高を増加する
キャンセル時のアクション
キャンセルボタンを押した時には、予約時とは反対にチケット残高を1枚増やす必要があります。キャンセルボタンのアクションに、ユーザーのチケット残高を1枚増加するアクションを追加します。
キャンセル時の作業テーブルは予約テーブルですので、予約時のアクションと同じように、IncrementアクションではUsersテーブルを操作することはできません。そこで、予約時と同じく、予約テーブルに作業ユーザーの関連列を作り、関連テーブルを操作する形でユーザーのチケット数を増加させます。
予約リストとユーザーリストを関連づける
まず、予約リストに作業中のユーザーを記録する列を作ります。続いて、UsersテーブルのユーザーIDと関連づけるRelation列を予約リストに作ります。
次に、キャンセルボタンのアクションを修正します。
予約ボタンと同じように、まずは現在のテーブルに作業中のユーザーのIDを記録します。
ユーザーテーブルの値を更新する
続いて、ユーザーテーブルの値を更新するアクションを設定します。その前に、Usersテーブルに列を追加し、チケットが一枚増えた時の値を計算させるようにします。
予約ボタンの設定と同じように、Math型の列を作り、各行の「受講券残高」の値を1増加させる計算をさせるようにします。
そして、キャンセルボタンのアクションを追加します。ユーザーテーブルの関連ユーザー行を選択し、受講券残高の値を、設定した数式列の値に更新します。
キャンセルボタンを押して挙動を確認する
これで完成です。実際にキャンセルボタンを押して挙動を確認してみます。ここではテーブルではなく、アプリ画面で動きを確認してみます。チケット残高が、予約を取る前の値に戻っていることが確認できるはずです。
なお、ボタンを押しても画面上は変化がないので、キャンセルできたかどうかわかりません。お好みで、「Go back」アクションを追加しても良いと思います。これをアクションの最後に追加することで、キャンセルボタンを押して一連の作業が終わると、自動的に前画面に戻るようになります。
チケットの販売と決済
次回は、チケットの販売と決済について、Stripeとの連携方法などをご説明します。
【自分で作るGlide】9:チケットの販売とBuyボタンで決済−ノーコードで塾の予約管理アプリを作る
Glideでノーコードアプリを自作してみるシリーズ。今回は、Stripeとの連携によるGlideでの決済機能についてご説明します。
シリーズ目次
Glideを使ってノーコードでアプリを自作するシリーズ、塾の予約管理アプリを作ってみました。データベースの構築・画面の設計・アクションの設定と、ノーコードでアプリを作成する一通りの作業を確認していきます。シリーズは全10回です。
Glideを使うのは初めてですが、開発時間は、Glideの導入からアプリ完成まで一日2、3時間使って3、4日といったところです。
目次
第1回:Glideの導入
第2回:Glideの編集画面について
第3回:Glideのテーブルの作り方
第4回:タブとコンポーネントの設定方法
第5回:アプリの画面を設計
第6回:アクションの設定
第7回:ロールアップ(Rollup)の使い方
第8回:計算式とアクションで残りチケット数を管理する
第9回:チケットの販売とBuyボタンで決済
第10回:アプリを公開する
個別編
リレーション(Relation)について
GlideとZapierを連携する−GlideアプリでZoomミーティングを作る
週末に作るGlideストップウォッチ編
週末時間でできる、簡単ノーコードアプリ開発。Glideのストップウォッチ機能を使って、目的別に整理できるストップウォッチアプリを開発します。
第1回:テーマを設定できるストップウォッチアプリのコンセプト設定とGlideへのログイン
第2回:計測「テーマ」のテーブルと画面の設定
第3回:ストップウォッチコンポーネント設定とテンプレート型を使った経過時間の表示
第4回:グラフで測定結果の見える化とWebアプリのリリース
0 件のコメント:
コメントを投稿