キャンバスアプリ フォーム Valid プロパティで入力チェック!

はじめに

キャンバスアプリのフォームには便利なプロパティが色々とあります。
以前から記事にちょこちょこちりばめて紹介もしていますが、以下作成したサンプルアプリをベースに
プロパティごとに概要や使い方をご紹介しようと思います。最初は Validプロパティです。

サンプル動画にもしていますが、他の部分は個別に記事で紹介していこうと思います。

フォームのプロパティ:Valid

Validプロパティについては以下公式の記載通りです。
要するに必須項目の未入力がある場合などはFalseになっていてすべて問題なしの場合はTrueとなります。
データが有効という判定ですが、基本的には必須が入っていないというイメージで問題ないかと思います。

公式:Power Apps での 編集フォーム および 表示フォーム のコントロール – Power Apps | Microsoft Learn

フォーム コントロールのValidプロパティは、フォーム内のすべての カード コントロールの Valid プロパティを集約します。 フォームのValidプロパティは、そのフォーム内のすべてのカードのデータが有効である場合にのみ true です。それ以外の場合は、フォームの有効プロパティは false です

NOTEこれらのプロパティは編集フォームにのみ存在します。
閲覧フォームの場合は表示のみなので更新関連のプロパティは存在しません。

サンプル動画

サンプルではValidプロパティのほか、タブリストで表示切替え、下書き・本番モード切替え、Updatesプロパティを使って確認フォームを作るサンプルとなっています。

Vaildプロパティでフォームの入力をチェック出来る

フォームをSubmitFormをすると未入力がある場合にはデータは更新されず、対象項目にエラーが表示される動作となります。
基本的には不備のあるデータが登録されることもないので問題ないのですが、
Validプロパティを使って、事前にフォームの内容が問題ないかをチェックすることが出来ます。

Validプロパティでボタンを非活性化

Validプロパティの使い道のひとつとして、上記のように不備がある状態だと更新ボタンをあらかじめ押せなくすることが可能です。

Code//更新ボタンのDisplayModeプロパティ
If(Form名.Valid,DisplayMode.Edit,DisplayMode.Disabled)

ボタンのDisplayModeに以下を設定する

必須未入力がある場合は非活性

解消されると活性化されてクリック可能となる

TIPS上記のように必要事項が埋まらない場合は非活性化(押せない状態)としておいて、
入力不足があることを事前にユーザーへ促し、無駄な更新操作を防ぐことが出来ます。

条件に応じて必須が変わる場合などにも対応できる

条件に応じて必須が切り替わる場合なども対応が可能です。
例えば以下のサンプルでは、「区分」が”社員”の場合は「所属/部署」も必須とする制御を入れています。

この場合も切り替えたタイミングでValidの判定が変わりちゃんと非活性となります。

TIPS自分で対象のコントロールの入力チェックをしての判定を実装することも出来ますが、面倒ですし、条件に応じて変わる場合などはさらにややこしいです。項目の追加などの場合にチェックの漏れが発生する可能性もあります。
上記のようにValidプロパティを使えば非常にスマートに判定が可能です。

裏技!?SubmitせずにSubmitのチェックを行わせる!

これは以前記事で書いたんですが、レコードコピー保存機能を実装する際にPatchでフォームを更新していました。その際にSubmitFormだと自動で入力チェック&対象コントロールにエラーを出してくれるのですがPatchだとやってくれないので、自分で実装する必要が出てきます。
この時にSubmitFormの時と同じチェックをさせるために、Validプロパティで判定しFalseの場合にのみSubmitFormを実行→不備があるのでエラー表示が出てくれる。という実装でPatchでもエラーチェック&表示が出来る仕組みを実装しました。

事前に入力不備がないかをチェックするボタンも作れます

上記の実装を活用して事前に入力チェックのボタンを作ることも出来ます。

Code//入力チェックボタンに以下を実装
If(!Form1.Valid,
    SubmitForm(Form1) ;Notify(“未入力項目があります。”,NotificationType.Warning);
    , Notify(“未入力項目はありません。”,NotificationType.Success)
)
★ValidプロパティがFalse(未入力あり)の場合のみSubmitFormをあえて実行してエラー表示を出す。
OKの場合は問題ないNotifyを表示するサンプル

以下のように入力必要な個所にエラー表示が出てくれる。アイテムの更新はされないのでチェックだけ出来る

問題ない場合は正常Notifyをだしている

カスタム要素のチェックは不可

たとえば入力項目がカタカナのみでないとダメや、特定の日付(今日以降)でないとダメなどの
カスタムでのエラーチェックはValidプロパティでは判定できません。
その場合はカスタムエラーチェックのロジックとValidプロパティを組み合わせて判定しましょう。

おわりに

今回はValidプロパティを紹介しました。通常フォームでSubmitFormを使って実装する場合、必ずしも必要ではありませんが、事前に入力必要項目を知らせ無駄なクリックを防ぐなど、ユーザービリティ向上のためにも使える便利なプロパティです。
もし自力で、コントロールAが空、コントロールBか空、コントロールCが空・・・などの判定を実装している方はValidプロパティを使えば非常にスマートになるので活用ください。

フォームにはほかにも便利なプロパティがあるので今後もちょこちょこ紹介していこうかと思います。それでは!

関連記事

フォームの便利なプロパティ:Updates

キャンバスアプリ フォーム 下書き・本番モードの実装サンプル

キャンバスアプリ タブリストで表示項目切替え

フォームのレイアウトサンプル:レイアウトの基本を載せてます。

フォーム関連:

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

ヨウセイ

ヨウセイ

一般職からSharePoint、C#、.NET系技術者へ、そこからPower App、Power Automate技術者へと転身。 ワンランク上のおっさんはPower Appsでシステム開発が出来る〜! qiitaや自社HPでも技術ブログを書いていました。

関連記事

コメント

この記事へのコメントはありません。

CONTENTS