2022.03.11PowerApps│すぐできるフォームコントロールの使い方ツイートこんにちは、あんこ先生です。フォームコントロールのカスタマイズがうまくいかず悩んでいませんか?例えば、入力するコントロールを変更したら警告が出たり、フォームモードの切り替え方やその仕組みがわからなかったりといった経験ありますよね。PowerApps初心者には鬼門のひとつであるフォームコントロールですが、データソースの更新には欠かせない重要なものです。アプリの自動生成で使う分にはちゃんと動くのですが、カスタマイズしようとすると難易度が跳ね上がります。いえ、カスタマイズしないことには使い勝手の良いアプリは到底作成できません。そこで、今回は「フォームコントロールの仕組みを知りたい」、「フォームコントロールをカスタマイズして使いたい」といった方を対象に、フォームコントロールとそれに従ずるカードコントロールの解説をしていきます。この記事を読めば、フォームコントロールのカスタマイズができるようになります。PowerApps│フォームコントロールについてフォームコントロールとは│Form指定したデータソースに対して、単一レコードの表示および編集、新規追加を行えます。それらはフォームモードの切り替えることで、同じコントロール上で動作します。フォームコントロールは、次の3つのモードを変更して使用します。表示フォーム│ViewForm既存レコードを確認するViewモードです。その名の通り、レコードの値をフォームに展開し表示します。表示のみのため、値の入力はできません。ボタンコントロールなどでViewForm関数を実行することで切り替わります。編集フォーム│EditForm既存レコードを修正するEditモードです。その名の通り、レコードの値をフォームに展開し、入力を許可します。各コントロールのDisplayModeはEditになります。ボタンコントロールなどでEditForm関数を実行することで切り替わります。新規フォーム│NewForm新規レコードを追加するNewモードです。その名の通り、新規レコードを追加します。設定により、ある程度の初期値を指定できます。ボタンコントロールなどでNewForm関数を実行することで切り替わります。基本的な使い方は、これらのモードを切り替えることで実現します。データソース・レコードとの関係フォームコントロールは、データソースのうち、ひとつのレコードを使用します。そのレコード値をカードと呼ばれるコントロールに展開します。フォームは通常1レコード目を展開していますが、指定により別レコードを展開させることも可能です。レコードの指定には、通常レコードの一覧が表示できるギャラリーコントロールを使用します。関連記事PowerApps│すぐできるギャラリーコントロールの使い方と活用事例2022.02.18主要プロパティの使い方フォームコントロールの主要プロパティは、次の4点です。DataSourceプロパティ表示、編集、または作成するレコードが含まれるデータソース。DefaultModeプロパティフォームコントロールの初期モードです。DisplayModeプロパティフォームモードと連動しているため、指定できません。Itemsプロパティ表示させるレコードを指定します。データ更新の実行│SubmitFormデータの更新にはSubmitForm関数を使用します。SubmitForm関数を実行すると、必須項目に値が含まれているか、データ型は一致しているかなど、入力データが検証されます。そこで不整合が発生した場合、OnFailureプロパティが実行されます。データ検証に合格した場合、データソースの更新を開始します。更新が成功した場合、OnSuccessプロパティが実行されます。フォームは編集モードに切り替わります。更新が失敗した場合も、OnFailureプロパティが実行されます。SubmitForm関数を実行するには、ボタンコントロール等が必要です。データ更新時のプロパティ│OnSuccess、OnFailureOnSuccessプロパティSubmitForm関数およびデータソースの更新が成功すると実行します。データソース更新後にさせたい処理を記載します。OnFailureプロパティSubmitForm関数が失敗、またはデータソースの更新に失敗すると実行します。データソースが更新されていないことをユーザーに通知することに使えます。カードコントロールとは│Cardカードコントロールとは│Cardフォームコントロールは、複数のカードコントロールで構成されています。フォームはレコード全体を表し、各カードはそのレコードの1つのフィールドを表します。図のように、通常4つのコントロールで構成されていますが、それらは任意で追加修正することが可能です。主要プロパティの説明カードコントロールの主要プロパティは、次の4点です。Defaultプロパティカードに割り当てる初期値です。通常はThisItem.項目名になっていますが変更も可能です。DateAdd(ThisItem.項目名,1)とすれば、カードに含まれる日付入力コントロールは1日後の日付が表示されます。DataFieldプロパティフォームコントロールのデータソースに含まれる項目を指定します。カード作成時に自動で割り当てられているため、データソースを変更しない限り修正する必要はありません。UpdateプロパティSubmitForm関数が実行されると、DataFieldプロパティの項目がUpdateプロパティの値でデータソースに書き込まれます。テキスト入力コントロールが指定されていますが、任意のコントロールや数式に変更することも可能です。Requiredプロパティ入力を必須にするためのプロパティです。これがtrueになっていた場合、空データを許可しません。この状態でSubmitForm関数が実行されると、エラーメッセージが表示されます。データ参照カード内の各コントロールは、Parent.Default=親カードのDefaultプロパティを参照して値を取得します。カード内の各コントロールは、親であるカードのDefaultプロパティを参照します。新規フォームに含めていない(または削除)項目はSharePointリストで設定した初期値で登録されます。初期値を設定していない場合は、空になります。必須項目を含めなかった場合、SubmitForm関数でエラーが発生し保存できません。Visibleプロパティで非表示としたカードも、データは更新されます。更新させたくない場合は、非表示ではなく削除してください。日付カードを必ず本日の日付として登録したい場合は、DefaultプロパティにToday関数を埋め込みます。ユーザーに更新されたくない場合はVisibleプロパティをfalseにすることで実現できます。必須項目のDefaultプロパティの値が空だと、エラーが発生し保存できません。フォームコントロールとカードのカスタマイズカードの追加フォームのカード追加は3ステップです。追加したい項目をプロパティ➡フィールドの編集➡フィールドの追加から選択します。項目が多いデータソースだと、すべてのカードが自動で作成されないことがあります。同様の手順で追加しましょう。誤って削除したカードも同様の手順で追加できます。カードのロック解除グレーアウトされたプロパティはロックされているため、修正できません。これは、詳細設定タブの上部にあるカギマークバナーを押すことで解除できます。カードの並び替えカードの並びはドラッグでかんたんに変更できます。コントロールの種類変更│例:テキスト入力→ドロップダウンかんたんな操作で様々なコントロールに変更できます。数式を変えることで、参照データも操作できます。下図のケースでは、参照データをDistinct関数で重複排除しています。そのため、フィールド名がValueからResultに変わってしまいました。変更したコントロールに×印が表示されるため、Update関数の修正も行います。フォームコントロールのまとめ今回は初心者が扱いにくいフォームコントロールを紹介しました。フォームモードの変更は十分理解しないと、意図した処理が行えません。いじってみて、どのように動作するか試してみましょう。カード内のコントロールを差し替える方法はこちらで紹介しています。併せて読むと理解が深まりますよ!関連記事PowerApps│最後に更新したレコードをギャラリーで選択状態にする方法2022.03.07関連記事PowerApps│本当に使う最低限抑えておくべきコントロール8選2022.02.16関連記事PowerApps│添付ファイルをメールでかんたんに送る方法2022.03.26ご支援よろしくおねがいしますこの記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。メッセージもいただけるとたいへん喜びます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。US七草あんこ非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。Twitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。