管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【実用レベル】appsheetで出勤アプリを作ってみよう

【実用レベル】appsheetで出勤アプリを作ってみよう

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • 出退勤を管理するアプリを作りたい人
  • appsheetで実用的なアプリを作成したい人
本記事を読んで出来るようになること
  • データタイプの選択、Initial Valueの設定、ref機能などappsheetにおける基本がマスターできる

今回はアプリ開発の実践記事です。

私がappsheetを勉強して、一番最初に作ったアプリが出退勤を管理するアプリでした。

あの頃はアプリ開発なんて全く出来る気がしなかったな・・

上司に言われて嫌々ノーコードの勉強をさせられて・・

でも、気がついたら休日返上でノーコードの勉強をしている変態勇者にまで成長しました!笑

当時のアプリはとても使いやすいものではありませんでしたが、今なら出来る!と思い記事にしました。

それでは勉強していきましょう(^^)

アプリ開発をしたことがない人は参考記事から勉強するのがおすすめです

参考記事

データシートの作成

参照テーブルの説明

管理する項目については、以下のカラムで今回は実践しています。

出退勤管理一覧
出退勤管理一覧シート

項目としては、出勤者の名前と日付、就業時間が分かるようなカラム構成としました(^^)

チームメンバー
チームメンバーシート

こちらのシートには名前とemail、あとは管理者のみ見せたいViewを作ろうと思うので、管理者カラムを作ってあります(^^)

管理者カラムを作ることのメリットについては、こちらの記事を参考にしてください

参考記事

読み込むデータの作成が完了したら、appsheetにデータを取り込みましょう。


データカラムの設定とアクションボタンの作成

データタイプ編集とアクションボタン追加

次に読み込んだデータを扱いやすいように修正を加えていきます。

まずはデータタイプの編集から参ります(^^)

出退勤管理一覧のデータカラム編集

出退勤管理一覧イメージ
IDカラム
IDカラムの設定

IDカラムのShow?のチェックを外します。

日付カラム
日付カラムの設定

日付カラムのデータタイプをDateにして、Initial Valueにtoday()を入力します。

名前カラム
名前カラムの設定
名前カラムの初期値

名前カラムのタイプをRef、参照テーブルをチームメンバーにします。

また、Initial Valueにはuseremail()を入力しておきましょう。

始業時刻カラム
始業時刻カラムの設定
始業時刻カラムの初期値

始業開始カラムのタイプをTime、Ignore secondsにチェックを入れます(秒を無視する設定)

また、Initial Valueにはtimenow()を入力しておきましょう。

終業時刻カラム
終業時刻カラムの設定

終業開始カラムのタイプをTime、Ignore secondsにチェックを入れます(秒を無視する設定)

TIPS

より高度なアプリとしたい場合は、終業時刻と終業時コメントと連絡事項のShow?に

in([ID],出退勤管理一覧[ID])と入力してみてください(^^)

以上で出退勤管理一覧テーブルの設定は完了です。

始業時コメント、終業時コメント、連絡事項はそのまま(タイプText)で構いません。

続いて、チームメンバーテーブルの編集に移ります。

チームメンバーのデータカラム編集

チームメンバーイメージ
カラムのKEY値とLABEL値の設定
チームメンバーテーブルの設定

emailをKEY値、名前をLABEL値に変更します。

他の項目はいじらなくて大丈夫です。

データタイプの編集はこれで完了です。

お疲れさまでした(^^)

アクションボタンの作成

アクションボタンのイメージ

ここからは、アクションボタンの作成の説明をします。

アクションボタンでは

  • CSVにデータをエクスポート
  • 他のView画面に遷移
  • メールを送信

と様々なことを実装することが可能です。今回使うのは

セットしておいた値をカラム値に送る

この機能を使ってみたいと思います。

終業時刻を打刻するアクションを作成する
打刻アクション作成

写真の赤枠部分を参照し、同じようにデータを編集してください。

input()アクションを作成する
input()関数アクションの作成
  • 終業時刻に[_input].[終業時刻]
  • 終業時コメントと連絡事項に[_input].[終業時コメント][_input].[連絡事項]
input()関数の初期値

AdvancedのInputsを上図のように設定します。

input()関数について

2024年6月にinput()関数の仕様が変わりました!

括弧の中に引数を入れるものではないので、関数と呼べるものではなくなりました・・

作成したアクションを1つにまとめる終業ボタンを作成する
終業ボタン作成

Actionsは打刻(timenow()を取得する)アクションを上にしてください。

ボタン表示の条件式

この条件式を入力することで、終業ボタンは一度しか押せなくなります

仮に間違えて押してしまった場合もやり直しがきかないので、それを防ぎたい場合は条件式を入力しないでください。

isblank()関数については、こちらの記事を参考にしてください

参考記事
AddボタンとEditボタンを画面から消す(System generated)
初期配置ボタンの設定

ProminenceをDo not displayに変更します。(Editボタンも同じように)

これでアクションボタンの設定は完了です。お疲れさまでした(^^)


View画面を整える

view設定のイメージ

続いてViewの設定をしていきます。

アプリの画面は使用者にとって非常に重要なものなので、そこを作り込んでみましょう。

新規に出勤情報を登録するViewを作成する

新規Viewの作成

まずは、チームメンバーの出勤状況を登録するViewを作成します。

Form Viewの作成
form viewの作成

設定としては赤枠の部分だけでOKです(^^)

自分の出勤状況が分かるViewを作成する

自分で登録したデータを表示

次に、登録したデータの中で自分が登録したデータだけが表示されるViewを作成します。

今回は、スライステーブルを使用してみたいと思います。

スライステーブルの作成
スライスの作成
  • Source Tableは出退勤管理一覧
  • Row filter conditionに[名前]=useremail()

この設定でスライステーブルを作成したら、今度はViewの作成をします。

自分の出社状況がわかるViewの作成
自分が登録したものだけ表示

参照テーブルには、先ほど作成したスライステーブルを指定します。

上記設定で、自分が登録したデータのみを表示させるViewの完成です(^^)

管理者がチームメンバーの状態を確認できるViewを作成する

管理者に閲覧権限を付与

最後に、管理職の人がチームメンバーの就業状況を確認するためのViewを作成したいと思います。

管理者専用のViewを作成
新規Viewの作成
Viewの設定
show if の設定

赤枠で囲まれた部分を参考にデータの編集をします。

any(select(チームメンバー[管理者],[email]=useremail()))

Show ifには上記の構文を入力してください。

アプリ画面の確認

アプリの検証

作成したアプリに出社と退社の入力、表示されるデータの確認をしてみます。

チームメンバーの場合

まず、管理者ではないチームメンバーのアプリの見え方からいきましょう(^^)

出勤の日時を登録する
新規登録

最初に出社登録タブをクリックします。

出社時間の登録とコメント

始業時刻と始業時コメントを入力してSaveを押します。

退勤時間を登録する
退勤時間の登録

自分の出社表タブを選択した状態で、本日の日付をクリックします。

退勤ボタンをクリック

画面右下にある終業ボタンを押します。

input関数の確認

終業ボタンを押すと終業時刻、終業時コメント、連絡事項のポップアップが立ち上がるので入力してSaveを押します。

入力画面の確認

入力したデータが無事にアテンドされています(^^)

管理者の場合

続いて、管理者がログインした場合のアプリ画面を見てみましょう。

管理者のアプリ画面

管理者にはメンバーの就業状況のタブが見えるようになっています。

メンバーの就業状況

Viewの中身は従業員ごとの就業状況が一覧で見られるようにしてあります。


まとめ

以上、出退勤アプリの作成でした。

他にもまだまだ機能として考慮すべき点は多々あります。

  • 従業員の現在のステータスを表示させる(出社、在宅、出張など)
  • 勤務時間の自動計算(残業時間の合計)
  • 上司への終業自動連絡

こういった機能を実装するのも面白いかもしれません。

需要がありそうならアプリ作成第二弾も考えたいと思います。

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

6 COMMENTS

素人アプリクリエーター

始めまして。

現在、ど素人ながら打刻アプリの作成をappsheetで行っている者です。
こちらのブログの内容が大変参考になり、退勤処理をアクションボタンから実行させるという面を自分も取り入れさせていただきました。
ただ、退勤打刻ボタン([打刻]アクションと[input]アクションをグループ化したもの)を押すと、[SAVE] [CANCEL]の選択に左右されず、当ボタンを押した時点で退勤時間が登録されてしまい、退勤登録のキャンセルが出来ない状態になってしまいます。

色々自分でも試してみたのですが、解決策がわからず、もしよろしければご教授頂くことは可能でしょうか?

返信する
k

コメントありがとうございます(^^)
私のイメージでは、終業ボタンを押すのは1回だけかと考えていましたが、たしかにユーザーが誤操作してしまう可能性もありますね・・
以下の2つの設定はいかがでしょう?

1つ目は、
BehaviorのOnly if this condition is trueに入力したisblank([終業時刻])を消す設定
ただし、この設定は終業ボタンは常に表示され、入力をキャンセルしたとしても現在の時刻が登録されてしまいます。

2つ目は1つ目の設定に加えて、
input(” “,[終業時刻])をinput(” “,” “)に変え、Group actionを解除し、input actionのアクションボタンで終業の申告をさせる設定
こちらの設定は、入力をキャンセルしたら終業時刻は保存されませんが、毎回自分で時刻を入力する必要があります。

アプリの使用環境を考えると、2つ目の設定のほうが個人的にはおすすめです(^^)

返信する
ごっち

はじめまして。最近appsheetを触り始めたのですが、大変参考になっています。

1点、step4の「addとeditボタンを消す」設定が、画面が途切れていてよく分からないです。。。BehaviorのActionsタブから、New Actionでその後の設定を教えていただけますか?

返信する
k

コメントありがとうございます(^^)
この記事の内容はある程度アプリ開発をしたことがある人向けにまとめているところがあるので、不親切な部分が多々あること、ご容赦ください。

質問に対する回答ですが、「Add」と「Edit」はNew Actionから作ったものではなく、すでにあるもの(System Generated)のことを指しています。

「Add」のアクションボタンに関しては、目次『View画面を整える』に、新規に出勤情報を登録するViewの作成があるため不要

「Edit」のアクションボタンに関しては、新規に登録した出勤記録データを編集するのは不都合があることを考慮し、不要と判断

どちらも表示させたままでもいいような気もします。ここは完全にアプリ作成者の個性ですね!

返信する
ごっち

ご丁寧にありがとうございます!下の「Show all」でシステムに元々入っているボタンをいじれるんですね!助かりました、ありがとうございます!

返信する
k

Appsheetの開発画面のUIが一新されてきていますので、古い記事から説明写真の更新をしていくつもりです。
なるべく読者の皆さんが理解しやすいようにしたいので、記事内容について不明点があれば遠慮なくコメントをしてください(^^)

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA