はじめに
部署の座席表をPower Appsで作成してみました。
座席の情報をSharePointリストに保存し、Power Appsで作ったTeamsアプリから座席の閲覧と利用者の変更を行います。
SharePointリスト
作成するリストは以下の2つです。
- 部署メンバー
- 座席管理
部署メンバー
座席の利用者を部署のメンバーに限定するためのリストです。
以下の列を持ちます。
- 氏名:1行テキスト
座席管理
誰がどの座席に座るのか管理するためのリストです。
以下の列を持ちます。
- 座席番号:1行テキスト
- 利用者:参照(部署メンバー)
Power Apps
データの追加
空のキャンバスアプリを作成後、先ほど作成した2つのSharePointリスト(部署メンバー、座席管理)をデータに追加します。
座席の作成
垂直コンテナを使って座席を作成し、上段にラベル(座席番号)、下段に水平コンテナを配置します。
次に水平コンテナの左側にラベル(利用者)、右側に編集アイコンを配置します。
ラベル(利用者)のTextにはLookUp(座席管理, SeatNo='lblSeatC-4'.Text).利用者.Value
を設定し、SharePointリスト(座席管理)から取得した座席の利用者を表示します。
編集アイコンのクリックで後述の利用者編集フォームを表示するために、OnSelectにはUpdateContext({locIsShowModal:true, locTargetSeatNo:'lblSeatC-4'.Text})
を設定します。
※利用者編集フォームの表示と編集対象の座席は、以下の変数を使って管理します。
- locIsShowModal:trueの場合に利用者編集フォームを表示
- locTargetSeatNo:編集対象の座席番号を設定
座席を1つ作成したら、同様の手順で座席を追加し、実際のオフィスと同様のレイアウトで配置します。
利用者編集フォームの作成
利用者を編集するためのフォームを作成し、以下のコントロールを配置します。
- 利用者選択ドロップダウン
- 更新ボタン
- 中止ボタン
利用者選択ドロップダウン
フォームのデータソースに「座席管理」、フィールドに「利用者」を設定することで、自動で作成されます。
クリックした編集アイコンの座席を参照するために、フォームのItemにはLookUp(座席管理, 座席番号=locTargetSeatNo)
を設定します。
また、確定した編集内容をすぐに画面へ反映するために、OnSuccessにはRefresh(座席管理)
を設定します。
※SharePointリスト(座席管理)を最新の状態に更新します。
更新ボタン
利用者の編集を確定し、SharePointリストに反映するためのボタンです。
OnSelectに SubmitForm(editForm)
を設定し、編集フォームの内容をSharePointリストへ反映します。
また、フォームを非表示にし、編集対象の座席をリセットするために、UpdateContext({locIsShowModal:false, locTargetSeatNo:""})
も設定します。
中止ボタン
編集を中止し、フォームを閉じるためのボタンです。
フォームを非表示にし、編集対象の座席をリセットするために、OnSelectにはUpdateContext({locIsShowModal:false, locTargetSeatNo:""})
を設定します。
利用者の変更
作成したアプリをTeamsに追加し、実際に利用者を変更してみます。
追加したTeamsアプリを開くと各座席に利用者が表示されています。
試しにC-4の利用者を変更するために、編集アイコンをクリックします。
利用者編集フォームが表示され、現在の利用者(社員Aさん)が選択されています。
利用者を東太郎さんに変更し、更新ボタンをクリックします。
利用者編集フォームが非表示になり、C-4の利用者が東太郎さんに変更されています。
おわりに
Power Appsを使って座席表を作成することができました。
今後は他のPower Platformなどと連携し、より便利なツールへ改良したいと思います。