PowerApps の [Edit form (フォームの編集)] コントロールと [Display form (フォームの表示)] コントロールEdit form and Display form controls in PowerApps

データ ソースのレコードを表示、編集、および作成します。Display, edit, and create a record in a data source.

説明Description

[Display form (フォームの表示)] コントロールを追加する場合、ユーザーはレコードのすべてのフィールド、または指定されたフィールドのみを表示できます。If you add a Display form control, the user can display all fields of a record or only the fields that you specify. [Edit form (フォームの編集)] コントロールを追加する場合、ユーザーはそれらのフィールドを編集したり、レコードを作成したり、変更をデータ ソースに保存したりできます。If you add an Edit form control, the user can edit those fields, create a record, and save those changes to a data source.

フォーム コントロールとフォーム ビュー コントロールの例

[Gallery (ギャラリー)] コントロールを追加する場合、データ ソース内にテーブルを表示するようにコントロールを構成した後、ユーザーがギャラリーで選択したレコードを表示するようにフォームを構成することができます。If you add a Gallery control, you can configure it to show a table in a data source and then configure a form to show whichever record the user selects in the gallery. 編集内容を保存したり、編集をキャンセルしたり、レコードを作成したりするためにユーザーが選択できる [Button (ボタン)] コントロールを 1 つ以上追加することもできます。You can also add one or more Button controls that the user can select to save edits, cancel edits, and create a record. コントロールを組み合わせて使用することにより、理想的なソリューションを作成できます。By using controls together, you can create a complete solution.

レコードの選択Record selection

どちらのタイプのフォームでも、その DataSource プロパティをレコードのテーブルに設定し、そのテーブル内の特定のレコードを表示するようにフォームの Item プロパティを設定します。For either type of form, you set its DataSource property to a table of records, and you set the form's Item property to show a specific record in that table. たとえば、フォームの Item プロパティを、[Gallery (ギャラリー)] コントロールの SelectedItem プロパティに設定できます。For example, you can set the Item property of a form to the SelectedItem property of a Gallery control. ユーザーがギャラリーでレコードを選択すると、そのレコードがフォームに表示されます。ただし、フォームに表示するフィールドは増やすことができます。When the user selects a record in the gallery, the same record appears in the form, except that the form can show more fields. ユーザーがギャラリーに戻って別のレコードを選択すると、ギャラリーの SelectedItem プロパティが変化します。If the user returns to the gallery and selects a different record, the SelectedItem property of the gallery changes. この変更により、フォームの Item プロパティが更新され、新しく選択されたレコードがフォームに表示されます。This change updates the Item property of the form, which then shows the newly selected record.

それぞれのフォーム コントロールには 1 つ以上の [Card (カード)] コントロールが含まれます。Each form control contains one or more Card controls. カードの DataField プロパティを設定することにより、カードに表示するフィールドとその他の詳細を指定します。By setting the DataField property of a card, you specify which field that card shows and other details.

レコードを作成するCreate a record

[Edit form (フォームの編集)] コントロールが [Edit (編集)] モードのとき、ユーザーは、フォームの Item プロパティで指定されたレコードを更新できます。When an Edit form control is in Edit mode, the user can update the record that's specified in the form's Item property. 検査した場合、Mode プロパティは Edit を返します。If inspected, the Mode property returns Edit.

ただし、[Edit form (フォームの編集)] コントロールが [New (新規)] モードのとき、Item プロパティは無視されます。When an Edit form control is in New mode, however, the Item property is ignored. フォームは既存のレコードを表示しません。代わりに、各フィールドの値は、フォームの構成時に使用したデータ ソースの既定値と一致します。The form doesn't show an existing record; instead, the values in each field match the default values of the data source with which you configured the form. NewForm 関数を使用することで、フォームはこのモードに切り替わります。The NewForm function causes a form to switch to this mode.

たとえば、[New (新規)] を表示するようにボタンの Text プロパティを設定し、その OnSelect プロパティを NewForm 関数を含む数式に設定できます。For example, you can set the Text property of a button to show New and its OnSelect property to a formula that includes the NewForm function. ユーザーがそのボタンを選択すると、フォームは [New (新規)] モードに切り替わり、ユーザーは既知の値で始まるレコードを作成できます。If the user selects that button, the form switches to New mode so that the user can create a record starting with known values.

ResetForm 関数が実行されるか、SubmitForm 関数が正常に実行された場合、フォームは [Edit (編集)] モードに戻ります。A form switches back to Edit mode if either the ResetForm function runs or the SubmitForm function runs successfully.

  • [Cancel (キャンセル)] を表示するようにボタンの Text プロパティを設定し、その OnSelect プロパティを ResetForm 関数を含む数式に設定できます。You can set the Text property of a button to show Cancel and its OnSelect property to a formula that includes the ResetForm function. ユーザーがそのボタンを選択すると、進行中の変更は破棄され、フォーム内の値は再びデータ ソースの既定値と一致します。If the user selects that button, any changes in progress are discarded, and the values in the form, once again, match the default values of the data source.
  • [Save changes (変更を保存)] を表示するようにボタンの Text プロパティを設定し、その OnSelect プロパティを SubmitForm 関数を含む数式に設定できます。You can set the Text property of a button to show Save changes and its OnSelect property to a formula that includes the SubmitForm function. ユーザーがそのボタンを選択し、データ ソースが更新されている場合、フォーム内の値はデータ ソースの既定値にリセットされます。If the user selects that button and the data source is updated, the values in the form are reset to the default values of the data source.

変更を保存Save changes

既に説明したように [Save changes (変更を保存)] ボタンを作成する場合、ユーザーはレコードを作成または更新した後、そのボタンを選択して変更内容をデータ ソースに保存することができます。If you create a Save changes button as the previous section describes, the user can create or update a record and then select that button to save those changes to the data source. 代わりに、同じタスクを実行するように [Image (画像)] コントロールまたはその他のコントロールを構成できます (SubmitForm 関数でそのコントロールを構成する場合)。You could, instead, configure an Image control or some other control to perform the same task, as long as you configure that control with the SubmitForm function. いずれの場合も、ErrorErrorKindOnSuccess、および OnFailure の各プロパティが結果についてのフィードバックを提供します。In any case, the Error, ErrorKind, OnSuccess, and OnFailure properties provide feedback on the outcome.

SubmitForm 関数が実行されると、まず、ユーザーが送信しようとしているデータが検証されます。When the SubmitForm function runs, it first validates the data that user wants to submit. 必須のフィールドに値が含まれていないか、別の値がその他の制約に準拠していない場合、ErrorKind プロパティが設定され、OnFailure 式が実行されます。If a required field doesn't contain a value or another value doesn't conform to some other constraint, the ErrorKind properties are set, and the OnFailure formula runs. データが有効である (つまり、フォームの Valid プロパティが true である) 場合にのみユーザーが選択できるよう、[Save changes (変更を保存)] ボタンまたはその他のコントロールを構成できます。You can configure the Save changes button or other control so that the user can select it only if the data is valid (that is, if the Valid property of the form is true). Error および ErrorKind プロパティをリセットするには、ユーザーは問題を修正するだけでなく、[Save changes (変更を保存)] ボタンをもう一度選択する (または、既に説明したように、[Cancel (キャンセル)] ボタンを選択して変更内容を破棄する) 必要もあることに注意してください。Note that the user must not only correct the problem but also select the Save changes button again (or discard the changes by selecting a Cancel button, as described earlier) to reset the Error and ErrorKind properties.

データが検証に合格した場合、SubmitForm はデータをデータ ソースに送信しますが、ネットワークの遅延によっては少し時間がかかることがあります。If the data passes validation, SubmitForm sends it to the data source, which can take some time depending on network latency.

  • 送信が成功した場合、Error プロパティはクリアされ、ErrorKind プロパティは ErrorKind.None に設定され、OnSuccess 式が実行されます。If the submission succeeds, the Error property is cleared, the ErrorKind property is set to ErrorKind.None, and the OnSuccess formula runs. ユーザーがレコードを作成した (つまり、フォームが以前は [New (新規)] モードだった) 場合、新しく作成されたレコードまたは別のレコードをユーザーが編集できるよう、フォームは [Edit (編集)] モードに切り替わります。If the user created a record (that is, if the form was previously in New mode), the form is switched to Edit mode so that the user can edit the newly created record or a different one.
  • 送信が失敗した場合、Error プロパティにはデータ ソースからの、問題を説明するユーザー向けのエラー メッセージが含まれます。If the submission fails, the Error property contains a user-friendly error message from the data source, explaining the problem. 問題に応じて ErrorKind プロパティが適宜設定され、OnFailure 式が実行されます。The ErrorKind property is set appropriately, depending on the issue, and the OnFailure formula runs.

データ ソースによっては、2 人のユーザーが同じレコードを同時に更新しようとしたときにそのことを検出できます。この場合、ErrorKindErrorKind.Conflict に設定され、対応策は、もう一方のユーザーの変更でデータ ソースを更新し、このユーザーによって行われた変更を再適用することです。Some data sources can detect when two people try to update the same record at the same time In this case, ErrorKind is set to ErrorKind.Conflict, and the remedy is to refresh the data source with the other user's changes and reapply the change made by this user.

ヒント: 進行中の変更をユーザーが破棄できるように [Cancel (キャンセル)] ボタンをフォーム上に提供する場合、ResetForm 関数をボタンの OnSelect プロパティに追加します (画面を変更するための Navigate 関数もこのプロパティに含まれている場合でも)。Tip: If you offer a Cancel button on your form so that the user can abandon changes in progress, add the ResetForm function to the button's OnSelect property even that property also contains a Navigate function to change screens. そのようにしないと、フォームはそのユーザーによる変更を保持します。Otherwise, the form will retain the user's changes.

レイアウトLayout

既定では、カードは電話アプリでは 1 列に配置され、タブレット アプリでは 3 列に配置されます。By default, cards are placed in a single column for phone apps and three columns for tablet apps. フォームを構成するときに、フォームの列の数と、カードを列にスナップするかどうかを指定できます。You can specify how many columns a form has and whether cards should snap to them as you configure the form. これらの設定は、カードの XY、および Width プロパティを設定するときにだけ使用されるため、プロパティとして公開されません。These settings aren't exposed as properties because they're used only to set the X, Y, and Width properties of the cards.

詳細については、「データ フォームのレイアウトについて」を参照してください。For more information, see Understand data form layout.

主要なプロパティKey properties

DataSource – ユーザーが表示、編集、または作成するレコードが含まれるデータ ソース。DataSource – The data source that contains the record that the user will show, edit, or create.

  • このプロパティを設定しない場合、ユーザーはレコードを表示、編集、または作成できず、追加のメタデータまたは検証は提供されません。If you don't set this property, the user can't show, edit, or create a record, and no additional metadata or validation is provided.

DefaultMode -フォーム コントロールの最初のモード。DefaultMode - The initial mode of the form control. 下記の Mode の説明で、使用可能な値と値の意味を確認してください。See the description of Mode below for the acceptable values and their meanings.

DisplayMode - フォーム コントロール内のデータ カードとコントロールでこのモードを使用します。DisplayMode - The mode to use for data cards and controls within the form control.

Mode プロパティ ベースから派生しているため、個別には設定できません。Derived from the Mode property based and cannot be set independently:

モードMode DisplayModeDisplayMode 説明Description
FormMode.EditFormMode.Edit DisplayMode.EditDisplayMode.Edit データ カードとコントロールは編集可能で、レコードへの変更を受け入れる準備ができています。Data cards and controls are editable, ready to accept changes to a record.
FormMode.NewFormMode.New DisplayMode.EditDisplayMode.Edit データ カードとコントロールは編集可能で、新しいレコードを受け入れる準備ができています。Data cards and controls are editable, ready to accept a new record.
FormMode.ViewFormMode.View DisplayMode.ViewDisplayMode.View データ カードとコントロールは編集できず、表示に最適化されています。Data cards and controls are not editable and optimized for viewing.

ErrorSubmitForm 関数が失敗したときにこのフォームに表示するユーザー向けのエラー メッセージ。Error – A user friendly error message to display for this form when the SubmitForm function fails.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.
  • このプロパティは、SubmitFormEditForm、または ResetForm 関数の実行時にのみ変化します。This property changes only when the SubmitForm, EditForm, or ResetForm function runs.
  • エラーが発生しない場合、このプロパティは であり、ErrorKindErrorKind.None に設定されます。If no error occurs, this property is blank, and ErrorKind is set to ErrorKind.None.
  • 可能な場合、ユーザーの言語でエラー メッセージが返されます。When possible, the error message returned will be in the user's language. 一部のエラー メッセージはデータ ソースから直接返され、ユーザーの言語ではない場合があります。Some error messages come from the data source directly and may not be in the user's language.

ErrorKindSubmitForm の実行時にエラーが発生した場合、発生したエラーの種類。ErrorKind – If an error occurs when SubmitForm runs, the kind of error that occurred.

  • [Edit form (フォームの編集)] コントロールのみに適用されます。Applies only to an Edit form control.
  • このプロパティには、Errors 関数と同じ列挙があります。This property has the same enumeration as the Errors function. [Edit form (フォームの編集)] コントロールは以下の値を返す可能性があります。An Edit form control can return these values:
ErrorKindErrorKind 説明Description
ErrorKind.ConflictErrorKind.Conflict 別のユーザーが同じレコードを変更した結果、変更が競合しています。Another user changed the same record, resulting in a change conflict. Refresh 関数を実行してレコードを再読み込みし、変更をもう一度やり直してください。Execute the Refresh function to reload the record, and try the change again.
ErrorKind.NoneErrorKind.None 不明な種類のエラーです。The error is of an unknown kind.
ErrorKind.SyncErrorKind.Sync データ ソースがエラーを報告しました。The data source reported an error. 詳細については、Error プロパティを確認してください。Check the Error property for more information.
ErrorKind.ValidationErrorKind.Validation 一般的な検証の問題が検出されました。A general validation issue was detected.

Item – ユーザーが表示または編集する DataSource 内のレコード。Item – The record in the DataSource that the user will show or edit.

LastSubmit – 最後に正常に送信されたレコード。サーバーが生成したフィールドを含みます。LastSubmit – The last successfully submitted record, including any server generated fields.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.
  • 一意の番号を持つ ID フィールドなど、何らかのフィールドをデータ ソースが自動的に生成または計算する場合、SubmitForm が正常に実行された後、LastSubmit プロパティがこの新しい値になります。If the data source automatically generates or calculates any fields, such as an ID field with a unique number, the LastSubmit property will have this new value after SubmitForm successfully runs.
  • このプロパティの値は OnSuccess 式で利用できます。The value of this property is available in the OnSuccess formula.

Mode – コントロールは [Edit (編集)] または [New (新規)] モードです。Mode – The control is in Edit or New mode.

モードMode 説明Description
FormMode.EditFormMode.Edit ユーザーはフォームを使用してレコードを編集できます。The user can edit a record by using the form. フォームのカードの値は、ユーザーが変更する既存のレコードのものが事前設定されます。The values in the form's cards are pre-populated with the existing record, for the user to change. SubmitForm 関数が正常に実行された場合、既存のレコードが変更されます。If the SubmitForm function runs successfully, an existing record is modified.
FormMode.NewFormMode.New ユーザーはフォームを使用してレコードを作成できます。The user can create a record by using the form. フォームのコントロールの値は、データ ソースのレコードの既定値が事前設定されます。The values in the form's controls are pre-popoulated with the defaults for a record of the data source. SubmitForm 関数が正常に実行された場合、レコードが作成されます。If the SubmitForm function runs successfully, an record is created.
FormMode.ViewFormMode.View ユーザーはフォームを使用してレコードを表示できます。The user can view a record by using the form. フォームのコントロールの値は、データ ソースのレコードの既定値が事前設定されます。The values in the form's controls are pre-popoulated with the defaults for a record of the data source.

以下の変更のいずれかが発生すると、フォームは [New (新規)] モードから [Edit (編集)] モードに切り替わります。The form switches from New mode to Edit mode when any of these changes occurs:

  • フォームが正常に送信され、レコードが作成されます。The form is successfully submitted, and a record is created. この新しいレコードに自動で選択を移動するようギャラリーが設定されている場合、ユーザーが追加の変更を行えるよう、作成されたレコードに対してフォームは [Edit (編集)] モードになります。If the gallery is set to automatically move selection to this new record, the form will be in Edit mode for the created record so that the user can make additional changes.
  • EditForm 関数が実行されます。The EditForm function runs.
  • ResetForm 関数が実行されます。The ResetForm function runs. たとえば、この関数が構成されている [Cancel (キャンセル)] ボタンをユーザーが選択します。For example, the user might select a Cancel button that's been configured with this function.

OnFailure – データ操作が失敗したときのアプリの応答方法。OnFailure – How an app responds when a data operation has been unsuccessful.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.

OnReset[Edit form (フォームの編集)] コントロールがリセットされたときのアプリの応答方法。OnReset – How an app responds when an Edit form control is reset.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.

OnSuccess – データ操作が成功したときのアプリの応答方法。OnSuccess – How an app responds when a data operation has been successful.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.

Unsaved – ユーザーによる未保存の変更が [Edit form (フォームの編集)] コントロールに含まれている場合は True。Unsaved – True if the Edit form control contains user changes that have not been saved.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.
  • このプロパティを使用して、未保存の変更が失われる前にユーザーに警告します。Use this property to warn the user before they lose any unsaved changes. 現在のレコードの変更を保存する前にユーザーが [Gallery (ギャラリー)] コントロールで別のレコードを選択することを防ぐには、ギャラリーの Disabled プロパティを Form.Unsaved に設定した上で、更新操作を無効にします。To prevent the user from selecting a different record in a Gallery control before saving changes to the current record, set the gallery's Disabled property to Form.Unsaved and, likewise, disable refresh operations.

Updates – フォーム コントロールに読み込まれているレコードに対してデータ ソースに書き戻す値。Updates – The values to write back to the data source for a record loaded in a form control.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.
  • このプロパティを使用して、コントロール内部のカードからフィールド値を抽出します。Use this property to extract the field values from the cards within the control. その後、これらの値を使用し、Patch 関数呼び出し、または接続によって公開されている別のメソッドによってデータ ソースを手動で更新することができます。You can then use these values to manually update the data source with a Patch function call or another method exposed by a connection. SubmitForm 関数を使用している場合、このプロパティを使用する必要はありません。You do not need to use this property if you are using the SubmitForm function.
  • このプロパティは、値のレコードを返します。This property returns a record of values. たとえば、[Name (名前)] および [Quantity (数量)] フィールドに対するカード コントロールがフォーム コントロールに含まれており、それらのカードに対する Update プロパティの値がそれぞれ "Widget" および 10 を返す場合、フォーム コントロールに対する Updates プロパティは { Name: "Widget", Quantity: 10 } を返します。For example, if the form control contains card controls for Name and Quantity fields, and the values of the Update properties for those cards return "Widget" and 10 respectively, then the Updates property for the form control would return { Name: "Widget", Quantity: 10 }.

Valid[Card (カード)] または [フォームの編集 (Edit form)] コントロールに有効なエントリが含まれており、データ ソースへの送信準備ができているかどうか。Valid – Whether a Card or Edit form control contains valid entries, ready to be submitted to the data source.

  • このプロパティは [Edit form (フォームの編集)] コントロールのみに適用されます。This property applies only to the Edit form control.
  • [Form (フォーム)] コントロールの Valid プロパティは、フォーム内のすべての [Card (カード)] コントロールの Valid プロパティを集約します。A Form control's Valid property aggregates the Valid properties of all the Card controls in the form. フォームの Valid プロパティは、そのフォーム内のすべてのカードのデータが有効である場合にのみ true です。そうでない場合、フォームの Valid プロパティは false です。A form's Valid property is true only if the data in all cards in that form is valid; otherwise, the form's Valid property is false.
  • フォーム内のデータが有効だがまだ送信されていない場合にのみ、変更の保存をボタンで有効にするには、ボタンの Enabled を次の式に設定します。To enable a button to save changes only when the data in a form is valid but hasn't yet been submitted, set the button's Enabled to this formula:

    SubmitButton.Enabled = IsBlank( Form.Error ) || Form.ValidSubmitButton.Enabled = IsBlank( Form.Error ) || Form.Valid

その他のプロパティAdditional properties

BorderColor – コントロールの境界線の色です。BorderColor – The color of a control's border.

BorderStyle – コントロールの境界線を Solid (実線)、Dashed (破線)、Dotted (点線)、None (なし) のいずれに指定します。BorderStyle – Whether a control's border is Solid, Dashed, Dotted, or None.

BorderThickness – コントロールの境界線の太さです。BorderThickness – The thickness of a control's border.

Fill – コントロールの背景色です。Fill – The background color of a control.

Height – コントロールの上端と下端の距離です。Height – The distance between a control's top and bottom edges.

Visible – コントロールを表示するか非表示にするかを指定します。Visible – Whether a control appears or is hidden.

Width – コントロールの左端と右端の間の距離です。Width – The distance between a control's left and right edges.

X – コントロールの左端とその親コンテナー (親コンテナーがない場合は画面) の左端間の距離です。X – The distance between the left edge of a control and the left edge of its parent container (screen if no parent container).

Y – コントロールの上端とその親コンテナー (親コンテナーがない場合は画面) の上端間の距離です。Y – The distance between the top edge of a control and the top edge of the parent container (screen if no parent container).

詳細More information

フォームの動作の詳細については、「データ フォームについて」を参照してください。For a comprehensive overview of how forms work, see Understand data forms.