PowerApps의 편집 양식 및 표시 양식 컨트롤Edit form and Display form controls in PowerApps

데이터 원본에서 레코드를 표시하고, 편집하고, 만듭니다.Display, edit, and create a record in a data source.

설명Description

표시 양식 컨트롤을 추가하면 사용자가 레코드의 모든 필드 또는 지정한 필드만 표시할 수 있습니다.If you add a Display form control, the user can display all fields of a record or only the fields that you specify. 편집 양식 컨트롤을 추가하면 사용자가 해당 필드를 편집하고, 레코드를 만들고, 변경 내용을 데이터 원본에 저장할 수 있습니다.If you add an Edit form control, the user can edit those fields, create a record, and save those changes to a data source.

예제 양식 및 양식 보기 컨트롤

갤러리 컨트롤을 추가하면 데이터 원본에 테이블을 표시하도록 구성한 다음 사용자가 갤러리에서 선택한 레코드를 표시하도록 양식을 구성할 수 있습니다.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. 사용자가 편집 저장 및 취소, 레코드 만들기를 선택할 수 있는 단추 컨트롤을 하나 이상 추가할 수도 있습니다.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 속성은 갤러리 컨트롤의 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.

각각의 양식 컨트롤에는 하나 이상의 카드 컨트롤이 포함됩니다.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

편집 양식 컨트롤이 편집 모드이면 사용자가 양식의 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 속성이 편집을 반환합니다.If inspected, the Mode property returns Edit.

그러나 편집 양식 컨트롤이 새로 만들기 모드이면 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.

예를 들어, 단추의 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. 사용자가 해당 단추를 선택하면 새로 만들기 모드로 전환되어 사용자가 알고 있는 값으로 레코드를 만들 수 있습니다.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 함수가 성공적으로 실행된 경우 양식이 다시 편집 모드로 전환됩니다.A form switches back to Edit mode if either the ResetForm function runs or the SubmitForm function runs successfully.

  • 단추의 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.
  • 단추의 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

앞 섹션에서 설명한 것처럼 변경 내용 저장 단추를 만들면 사용자가 해당 단추를 선택하여 레코드를 만들거나 업데이트한 다음 변경 내용을 데이터 원본에 저장할 수 있습니다.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. 또는 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. 어느 경우에나 Error, ErrorKind, OnSuccessOnFailure 속성은 결과에 대한 피드백을 제공합니다.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인 경우) 사용자가 선택할 수 있게 변경 내용 저장 단추 또는 기타 컨트롤을 구성할 수 있습니다.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). 사용자는 문제를 해결할 뿐 아니라 변경 내용 저장 단추를 다시 선택하여(또는 앞서 설명한 대로 취소 단추를 선택하여 변경 내용 취소) ErrorErrorKind 속성을 다시 설정해야 합니다.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. 사용자라 레코드를 만든 경우(즉 양식이 이전에 새로 만들기 모드였음) 양식이 편집 모드로 전환되어 사용자가 새로 만든 레코드나 다른 레코드를 편집할 수 있게 됩니다.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.

일부 데이터 원본에서 두 사람이 동시에 동일한 레코드 업데이트를 시도하는 것을 탐지할 수 있습니다. 이 경우 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.

팁: 사용자가 진행 중인 변경 내용을 취소할 수 있게 양식에 취소 단추를 제공할 경우, 이 속성이 화면 변경을 위한 Navigate 함수를 포함한다 하더라도 ResetForm 함수를 버튼의 OnSelect 속성에 추가합니다. 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

기본적으로 카드는 전화 앱의 한 열, 테이블 앱의 세 열에 놓입니다.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. 이 설정은 카드의 X, YWidth 속성을 설정하는 데만 사용되므로 속성으로 노출되지 않습니다. 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. 아래 모드의 설명에서 허용되는 값과 의미를 참조하세요.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.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.
  • 이 속성은 SubmitForm, EditForm 또는 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.

  • 편집 양식 컨트롤에만 적용됩니다.Applies only to an Edit form control.
  • 이 속성은 Errors 함수와 동일한 열거형입니다.This property has the same enumeration as the Errors function. 편집 양식 컨트롤은 다음과 같은 값을 반환할 수 있습니다.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.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.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 – 이 컨트롤은 편집 또는 새로 만들기 모드입니다.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.

다음과 같은 변경 중 하나가 발생하면 양식이 새로 만들기 모드에서 편집 모드로 전환됩니다.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. 갤러리가 이 새 레코드로 선택을 자동으로 이동하도록 설정된 경우, 만들어진 레코드에 대해 양식이 편집 모드로 지정되어 사용자가 추가적인 변경을 수행할 수 있게 됩니다.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. 예를 들어, 사용자가 이 함수를 통해 구성된 취소 단추를 선택할 수 있습니다.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.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.

OnReset편집 양식 컨트롤이 재설정되었을 때 앱이 응답하는 방식입니다.OnReset – How an app responds when an Edit form control is reset.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.

OnSuccess – 데이터 작업에 성공했을 때 앱이 응답하는 방식입니다.OnSuccess – How an app responds when a data operation has been successful.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.

Unsaved편집 양식 컨트롤에 저장하지 않은 사용자 변경 내용이 있으면 True입니다.Unsaved – True if the Edit form control contains user changes that have not been saved.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.
  • 저장되지 않은 변경 내용이 사라지기 전에 이 속성을 사용하여 사용자에게 경고합니다.Use this property to warn the user before they lose any unsaved changes. 사용자가 현재 레코드에 변경 내용을 저장하기 전에 갤러리의 다른 레코드를 선택하지 않게 하려면 갤러리의 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.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.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. 예를 들어 양식 컨트롤에 NameQuantity 필드의 카드 컨트롤이 있고 이 카드에 대한 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 }.

ValidCard 또는 Edit form 컨트롤에 올바른 항목이 있고 데이터 원본에 제출할 수 있는지의 여부입니다.Valid – Whether a Card or Edit form control contains valid entries, ready to be submitted to the data source.

  • 이 속성은 편집 양식 컨트롤에만 적용됩니다.This property applies only to the Edit form control.
  • 양식 컨트롤의 Valid 속성은 양식의 모든 카드 컨트롤에 있는 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.