はじめに
以下の記事でも紹介した通り、現在、Power Apps では、以前より更に簡単に作成できるようになっております。
例えば、以下のように SharePoint のリストを選択しただけで、新規登録、一覧表示、詳細表示、編集、削除等の機能が実装されているアプリの作成が出来ます。
また、こちらのアプリ、ユーザーが使用するデバイスの画面サイズに応じて表示を最適化してくれるレスポンシブ (デザイン) なアプリとなり、モバイルでも利用可能です。
そのため、Power Apps を新しく始める方の多くは、まずはこちらの方法でアプリを作ることになると思います。
また、Power Apps でアプリを作成する際、入力項目に既定値を設定し、出来るだけ利用者の負担を減らしたいというケースがございます。
しかし、こちらのアプリを利用する際、こちらのアプリの作りを踏まえ、少し工夫がいります。そのため、今回は、こちらのアプローチについて簡単に紹介します。
アプローチ
まず、通常、SharePoint リストの選択肢列を利用する場合、以下のようにして既定値を設定します。
しかし、以下のデータを見ると、SharePoint リストに登録されているデータと矛盾しているようです。。
理由としては、こちらのアプリのフォームでは、以下のように、変数を利用してフォームのモードを切り替えており、上記のように既定値を設定すると、編集やビューモードの際にも、データソース上の値ではなく、既定値に設定した値を表示してしまうことになるためです。
Parent.Default
とは、特定のコントロール(ボタン、テキストボックスなど)が属する「親」コントロールのデフォルト値を参照するために使用されます。フォームが「編集」 「ビュー」モードの場合、Parent.Default
はデータソース上の該当する行の値を表示します。フォームが「新規作成」モードの場合、Parent.Default は通常空白です。これは、新しいレコードにはまだデータがないためです。
上記を踏まえ、以下のように修正します。端的に言うと、フォームのモードが新規の場合にのみ既定値を設定するということです。それ以外の際は、Parent.Default
、つまり、選択したデータをそのまま表示します。
If(
newMode,
{Value: "新規"},
Parent.Default
)
こちらにより、正しくデータが表示できました。
まとめ
今回は、Power Apps で自動生成されたアプリで既定値の設定をする方法を紹介しました。自動生成されるアプリを利用するケース増えているという認識ですし、既定値を設定したいというニーズ高いという認識ですし、少しでも参考になれば幸いです。