やる気駆動型エンジニアの備忘録

WPF(XAML+C#)の話題を中心に.NET/Android/CI やたまに趣味に関するブログです

(Power Apps)Excelのチェックリスト入力アプリを作る

前回はカメラアプリを使った単独で実行可能なPower Appsアプリを作りました。

iyemon018.hatenablog.com

今回はデータ ソースにアクセスしてPower Appsを使ってデータを入力するようなアプリを作ってみます。

ということで今回は業務アプリとしてよくありがちなExcelと連携するチェックリスト アプリを作っていきます。

チェックリストを作る

前準備(Excel

  1. Excelからテーブルを作っておく。テーブル名は"チェックリスト"としておく。
  2. 日時を登録したいので"確認日時"列の書式を"yyyy/MM/dd HH:mm:ss"とする。
  3. One Drive上にExcelを保存する。

出来上がったのがこちら。

f:id:iyemon018:20200202174946p:plain

Power AppsでExcelからアプリを構築する

  1. アプリの新規作成し、接続からOne Driveを選択する。
  2. 先程作成したExcelファイルを選択して、テーブルを選択して接続する。
  3. しばらくするとアプリが作成される。

ちなみにこの時点でPower Appsが忖度してある程度アプリが出来上がります。 実行するとこのようになります。

f:id:iyemon018:20200202171347g:plain

Excel にはこのようにデータが記録されます。

f:id:iyemon018:20200202175230p:plain

このままではアプリとしては使えたものではないので調整していきます。

登録画面を編集する

そのままだと日時を手動入力したり、確認項目が自由入力となり統一されていません。 また、日時もUTCになっているのでタイムゾーンを合わせなければなりません。 ここではチェック項目を登録するための画面を調整していきます。

  1. ツリービューからEdit Screen1を選択する。
  2. ツリービューのEditForm1を選択してプロパティのフィールドから備考を選択する。備考は自由入力としたいのでテキスト入力項目を選択してプロパティのモードから"複数行"を選択する。
  3. 確認項目は確認済みなら"済"、それ以外は空欄とする。確認項目のカードを選択してプロパティの詳細タブからロックを解除する。Update に"済"を入力する。テキスト項目は削除しておく。
  4. 確認日時項目も同じくプロパティのロックを解除する。Power Apps ではUTC日時を扱っているのでUTC日時からの変換方法に従って、Update に"DateAdd(Now(), -TimeZoneOffset(Now()), Minutes)"を入力する。
  5. 確認者は利用ユーザー名を設定する。同上&省略。Update に"User().FullName"を入力する。
  6. 確認者(アドレス)は利用ユーザーのメールアドレスを設定する。Update に"User().Email"を入力する。

これで登録画面は問題なく入力した情報が登録されるようになりました。

一覧画面を編集する

一覧画面は登録済みの情報を表示していますが、初期状態では表示したい情報が適切に表示されているわけではありません。 表示したい情報を適切に表示し、かつ検索条件も調整していきます。

  1. ツリービューからBrowseScreen1 - BrowseGallery1を選択する。
  2. Title1のTextプロパティに"ThisItem.確認者"を入力する。
  3. SubTitle1のTextプロパティに"ThisItem.'確認者(アドレス)'"を入力する。
  4. Body1は削除し、アイテム内の外観は必要に応じて調節する。
  5. ツリービューからBrowseGallery1を選択してプロパティのItemsに"SortByColumns(Search([@チェックリスト], TextSearchBox1.Text, "備考","確認者"), "確認日時", If(SortDescending1, Descending, Ascending))"を入力する。

実行結果

登録画面はシンプルにこれだけです。

f:id:iyemon018:20200202194833p:plain

一覧画面もちょっとだけ見た目を調整しました。検索テキストも確認者で検索できるようになっています。

f:id:iyemon018:20200202194903p:plain

最後に

Excelの一覧をテーブルで作っておくだけで自動的にアプリが作られるのは本当に強いですね。 最初のうちはこういったテンプレートから生成されたアプリを改造しつつちょいちょい入出力項目を追加していくのがいいのでしょう。

今回作ったアプリも必要最低限だけなので、実務で使おうとするとExcelに列を足していけばいいです。 Excelに複数ユーザーから入力してもらうユースケースは業務上多いはずなので、この方法でカスタマイズしていけば業務改善のハードルもかなり下がりそうですね。