PowerApps│フォームのモードを調べて初期値を設定する方法

こんにちは、あんこ先生です。

新規と修正でフォームの初期値を変更したくありませんか?

フォームはモードを切り替えるとできることが変わります。

なるべくひとつのフォームでまとめたいところですが、初期値を設定しようとすると難解になります。

なぜなら、いまどのモードで動いているのか調べ方がわかりにくいからです。

逆に考えると、それがわかればぜんぜん怖くないんです。

そこで、今回はフォーム初心者を対象に、フォームのモードを調べて初期値を設定する方法を紹介します。

もう迷わない!

フォームコントロールって何?という方は先にこちらの記事をオススメします。

フォームのモードを調べて初期値を調べる方法


Form.Modeとは│列挙型Enum

よくわかりませんが、複数の定数をひとつにまとめたものだそうです。

曜日情報などを返すCalendar関数みたいなものですね。

中身は3つあって、次の表のようになっています。

Edit0
New1
View2

並びは既定モードのプルダウンと同じですね。

つまり、EditモードならForm.Mode=0Trueを返します。

Form.Mode=Editのように文字列では動作しません。

厳密にはNewのみ動作しますが、数値として比較した方がよいです。

一応変数にも格納できますが、その時点のモードのみ保持するため扱いにくいです。


フォームモード調査の具体例│Form.Mode

図を見ていただくともうそれが答えなんですが、下記式で判定できます。

フォーム名.Mode=1 //Newならtrue

フォーム名がfrmTestでEditモードか調べたい場合はこちらになります。

frmTest.Mode=0 //Editならtrue

やりかたさえわかればかんたんですよね。

では、これを用いてフォームに初期値を埋め込んでみましょう!

フォームに初期値を指定する

ロック解除しないと書き換えできないので忘れずに行っておきましょう。


初期値の設定│Newモード

おそらく初期値を設定したいのはこのNewモードだと思います。

すべてのカードはParent.Defaultになっているので、Newモードだと空になります。

一見問題なさそうですが、下図のようになりちょっと不便です。

テキスト入力
日付の選択未選択
ドロップダウン最上段選択

例えば日報やアンケートみたいに当日行うものだと、わざわざ日付を選択しないといけませんよね。

ここの初期値をToday関数にするだけで、ユーザーの手間をひとつ減らせます。

//Newモードなら初期値は本日の日付
Switch(Form.Mode,0,Parent.Default,1,Today(),2,Parent.Default)

Switch関数でモードごとの初期値を設定してみました。

実質2択なのでIf関数でも構いません。

その場合、次のコードになります。

//Newモードなら初期値は本日の日付
If(Form.Mode=1,1,Today(),Parent.Default)

Newモードで初期値を設定するとユーザーが楽できるので喜ばれますよ。


初期値の設定│View・Editモード

ここはParent.Defaultのままでよいです。

Viewモードで、値を見せず入力済みか知らせたい場合は次のようにします。

//Viewモードで値を見せたくない場合
If(Form.Mode=2 && !IsBlank(Parent.Default),"入力済み",Parent.Default)

ViewモードかつParent.Defaultの中身があれば、入力済みを返します。

Parent.Defaultの中身がない、または他のモードの場合は規定値を返します。

フォームのモードを調べて初期値を設定する方法のまとめ

今回はフォームのモードを調べて初期値を設定する方法を紹介しました。

フォームがどのモードで動いているか調べる方法がわかれば、より一層使いやすくなりますね。

モードの比較は文字列ではなく数値で行うのがポイントです。

初期値を設定しまくって、より使いやすいフォームを作成してみてください。

ご支援よろしくおねがいします

この記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。

下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。

受取人のメールアドレスは amazon@anko7793.com までお願いします。

メッセージもいただけるとたいへん喜びます。

よろしくお願いします。

Amazonギフト券(Eメールタイプ) 

コメントを残す

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

ABOUT US
七草あんこ
非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。主にTwitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。