AppSheet小ネタ(2)

小ネタは、忘備録的なところがありますので、内容が「それ。知ってるよ」って内容でも気にしないでくださいね。

何がしたいの?

AppSheetで、あるデータのDetail Viewを開いたときに、別なテーブルにデータを登録したいんですよね。

テーブル表示でもカード表示でも、データを選択したら詳細Viewに切り替わって、内容が表示されるじゃないですか。
その時に、同時に別なテーブル、例えば「操作ログテーブルにデータを選択したことを記録する」というようなことを実現したいわけです。

実現方法

これを実現するには、「ビューのイベントアクション(Event Actions)」機能を活用します。

通常、一覧から行を選択すると詳細ビューへ移動するだけになるのですが、この「行選択時」の動作を「別テーブルへのデータ追加」+「詳細ビューへの移動」を組み合わせたアクションに置き換えることで実現可能です。

具体的な設定方法は次の通り。

  1. データ追加用のアクションを作成する
    まず、別テーブルにデータを登録するためのアクションを作成します。

    Action name: 何か好きな名前
    For a record of this table: 詳細ビューを開く元のテーブルを選択
    Do this: Data: add a new row to another table using values from this row
    Table to add to: 登録先の別テーブルを選択
    Set these columns: 登録先に渡したい値を設定
  2. 詳細ビューを表示させるためのアクションを作成します。

    Do this: App: go to another view within this app
    Target: LINKTOROW([ID], "詳細ビュー名")
  3. アクションをグループ化するためのアクションを設定する
    データ登録と同時に詳細ビューを表示させるため、2つの動作をまとめます。

    Do this: Grouped: execute a sequence of actions
    Actions:上記の「データ追加アクション」と「詳細表示アクション」をこの順番で並べます。
  4. ビューのイベントに設定する
    最後に、一覧ビュー(TableやDeckビューなど)から詳細を開く際のトリガーに、作成したグループアクションを割り当てます。
    詳細ビューへ遷移する元の一覧ビュー設定を開き、Behavior セクションにある Event Actions の Row Selected 項目を手順3で作成した グループアクション に変更して保存します。

これで、ユーザーが行をタップして詳細ビューを開くたびに、裏側で別テーブルへのデータ登録が実行されるようになります。

まとめ

アクションを複数作らなければならないのが面倒ですが、このやり方を使えば、いろいろなデータを一度の操作で作れるようになりますね。

もし、AppSheetアプリの開発で相談したいことがあれば、お問い合わせフォームからお願いします。