見出し画像

送信ボタンの設定に隠される、けっこう複雑な設定とは?【Power Apps】

こんにちは!松井真也です。本日はPower Appsの第33回目の記事です。全体の80%くらいが完了しました。

皆さん、こんなふうに考えますか?

「送信ボタンの設定は簡単そうだな!ボタンを配置して、データを送るアクションをつけるだけなんでしょう!?🙄」

そうですよね、私もそう思っていました。ところが、送信ボタン一つでも色々設定することがあるんですよ。表示方法ですとか、データの更新の仕方ですとか。

本日のポイントは、「必須項目を全て入力できたかどうかが視覚的にわかるように、ボタン色を設定する」です。

気になる方は、読み進めてください♪

前回記事は、こちらです。

1.作業目標の確認

最終目標として、「点検報告アプリ」を作成しています。現在、「編集フォーム」を編集しています。どうそお付き合いの程よろしくお願い致します👍

「編集フォーム」とは、点検結果1アイテム分を入力し、新規追加(又は修正)するための画面です。

今回も、ヘッダーを更新します。具体的には、「閉じるアイコン」と「保存ボタン」のプロパティの一部を変更します❗

下図は、作業前の編集フォームです。

スクリーンショット 2021-07-20 042931

作業後の編集フォームです。外観上は、保存ボタンが変更になっています。IDも消えていますが、これは後で修正します。

スクリーンショット 2021-07-20 045805

よし、いってみよ~😄。

2.「閉じるアイコン」のプロパティの設定

「閉じるアイコン」のOnSelectプロパティを修正します。「このプロパティはデフォルトのままでいいんじゃないの?」と思いますが、ちょっと修正しなきゃいけないみたいですね😅。

スクリーンショット 2021-07-20 0429312

では、OnSelectプロパティの内容を確認してみましょう!二つ関数が入っています。それぞれ確認します。

ResetForm関数は、「編集フォームの内容を空にしろ」という意味です。この関数を入れておかないと、改めて新規作成しようと編集フォームを開いたときに値が残ってるのかもしれません。

Back関数は、画面操作に関する関数です。その意味するところは、単純に「一つ前の画面に戻る」というものです。これをNavigate関数に変更します。が、Back関数のままではいけないのでしょうか?

スクリーンショット 2021-07-20 043123

編集フォームに至る動線を思い出します。「スタート画面から、新規モードで開く場合」と、「一覧表示の詳細画面から編集モードで開く場合」がありました。今回は、いずれの場合も統一的に「一覧画面に戻してあげる」ような動線にしましょう!

下図のとおり、設定します。

スクリーンショット 2021-07-20 043400

これでとりあえず「閉じるボタン」は良しとしましょう😄。先を急ぎます。

3.「保存ボタン」を新規に設置する

さて、今度はヘッダー内にあるもうひとつのアイコン「保存ボタン」の方を編集していきます!保存ボタン一つにしても結構奥が深いんですよ~!

既存のボタンを削除します。

スクリーンショット 2021-07-20 043530

そして、ボタンアイコンを追加します。

スクリーンショット 2021-07-20 043854

ボタンの色やサイズなどは任意に変更します。

スクリーンショット 2021-07-20 045805

4.保存ボタンの表示を変更する

さて、ここからが本日の本番となります!DisplayModeプロパティを開いて次の通り設定します。ちょっと長いので一瞬「うっ」としますが、よく見るというIF関数一個ですよ。

スクリーンショット 2021-07-20 044748

If(And(!IsBlank(txtTitle.Text), !IsBlank(txtPlace.Text)), Edit, Disabled)

この数式は何を言っているんでしょうか?「件名と場所のテキストボックスが空であるときは、編集にする、それ以外の時は無効にする」という意味ですね。なるほど、送信が準備できた時にだけボタン表示を「有効」にするわけですか。

少し腹落ちしないのは、第2引数が「Edit」になってることです。これは表示の設定ですよね。であれば、直感的には「Enabled」みたいな値になってるのが適切なような気がします。わからないことがたくさんあります💦。これはおいおい勉強していきます❗

実際にプレビューでどう動くかを確認してみましょう。場所と件名が入力されていない時には、「保存ボタン」がグレーアウトしています。

スクリーンショット 2021-07-20 044814

一方、場所と件名両方とも入力すると保存ボタンが青くなりました🎉。設定は適切にできてるようですよ!

スクリーンショット 2021-07-20 044950

5.保存ボタンの送信時のアクションを設定する

続いて、「保存ボタン」のOnSelectプロパティを修正いたします。ボタンがタップされた時に起こるアクションを決めるのですね!

次のとおり入力します。また長いのきたねー😅。

If(EditForm1.Mode=FormMode.New,
 Refresh(CheckReport); UpdateContext({id: Max(CheckReport, ID)+1});
);
SubmitForm(EditForm1);

スクリーンショット 2021-07-20 053332

刮目してよーく見ています。大きく、IF関数とSubmitForm関数があります。SubmitForm関数は、入力した値をデータソースに送信することですね。

ここでは、IF関数を見ていきますよ!

曰く、「編集モードが新規作成ならば、データソースを最新の状態にする、加えて、データソース内のID列の最大時に一つを加えた値をコンテキスト変数idにセットせよ」でしょうか。

Max関数なるものを使って、新たなID番号を付与するとは、なかなか粋ですね!普段見ているいろんなアプリの、実際のプログラム設定が想像できます。これは面白い😆。

はい、本日は以上の通りとなりまーす。ボタン一つでも色々やらなきゃいけないんだなぁ😑。

スクリーンショット 2021-07-20 045805

まとめ

本日はここまで!本日の学びは、「必須項目を全て入力できたかどうかが視覚的にわかるように、ボタン色を設定する」ということです。

日頃、色々なアプリ上でよく見かけるこの機能ですが、自分が設定する側になると結構大変ですね。

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。

参考

書籍『ひと目でわかるPower Apps ローコードで作成するビジネスアプリ入門 改定新版』(日経BP、2020年6月、奥田理恵著)第3章と第4章を参考に、ノーコード・ツールPower Appsで「点検時の問題報告アプリ」を作ることにしております。

Power Appsはどんなノーコード・ツールなのか、ご関心がある方は、ぜひ同書を手に取ってお読みください!



この記事が気に入ったらサポートをしてみませんか?