데이터 원본에 레코드를 표시, 편집 및 만듭니다.
Description
표시 폼 컨트롤을 추가하면 사용자는 레코드의 모든 필드 또는 지정한 필드만 표시할 수 있습니다. 편집 양식 컨트롤을 추가하는 경우 사용자는 해당 필드를 편집하고, 레코드를 만들고, 해당 변경 내용을 데이터 원본에 저장할 수 있습니다.
갤러리 컨트롤을 추가하는 경우 데이터 원본에 테이블을 표시하도록 구성한 다음 갤러리에서 사용자가 선택한 레코드를 표시하도록 양식을 구성할 수 있습니다. 편집 내용을 저장하고 편집을 취소하고 레코드를 만들도록 선택할 수 있는 단추 컨트롤을 하나 이상 추가할 수도 있습니다. 컨트롤을 함께 사용하면 완전한 솔루션을 만들 수 있습니다.
제한점
양식 컨트롤에는 다음과 같은 제한 사항이 있습니다.
- 양식을 복사하여 데이터 카드에 붙여 넣을 수 없습니다. 이는 앱의 안정성과 성능을 위험에 빠뜨리는 컨트롤의 특정 조합이 생성되지 않도록 하기 위한 것입니다.
레코드 선택
두 형식의 폼에 대해 해당 DataSource 속성을 레코드 테이블로 설정하고 폼의 Item 속성을 설정하여 해당 테이블의 특정 레코드를 표시합니다. 예를 들어 폼의 Item 속성을 갤러리 컨트롤의 SelectedItem 속성으로 설정할 수 있습니다. 사용자가 갤러리에서 레코드를 선택하면 양식에 더 많은 필드가 표시된다는 점을 제외하고 동일한 레코드가 폼에 표시됩니다. 사용자가 갤러리로 돌아와서 다른 레코드를 선택하면 갤러리의 SelectedItem 속성이 변경됩니다. 이 변경 내용은 양식의 Item 속성을 업데이트한 다음 새로 선택한 레코드를 표시합니다.
레코드 표시, 편집 또는 추가와 같이 드롭다운 컨트롤이나 조회 또는 First와 같은 함수를 사용하여 폼의 Item 속성을 설정할 수도 있습니다. 예를 들어 다음 수식 중 하나에 Item 속성을 설정하여 Microsoft Dataverse의 Accounts 테이블에 Fabrikam 항목을 표시할 수 있습니다.
First(Accounts)
Lookup(Accounts, "Fabrikam" in name)
각 양식 컨트롤에는 하나 이상의 카드 컨트롤이 포함되어 있습니다. 카드의 DataField 속성을 설정하여 카드 에 표시되는 필드 및 기타 세부 정보를 지정합니다.
레코드 만들기
편집 양식 컨트롤이 편집 모드인 경우 사용자는 양식의 Item 속성에 지정된 레코드를 업데이트할 수 있습니다. 검사하는 경우 Mode 속성은 Edit를 반환합니다.
그러나 편집 양식 컨트롤이 새 모드인 경우 Item 속성은 무시됩니다. 양식에 기존 레코드가 표시되지 않습니다. 대신 각 필드의 값은 양식을 구성한 데이터 원본의 기본값과 일치합니다. NewForm 함수를 사용하면 폼이 이 모드로 전환됩니다.
예를 들어 단추의 Text 속성을 설정하여 New 및 OnSelect 속성을 NewForm 함수를 포함하는 수식으로 표시할 수 있습니다. 사용자가 해당 단추를 선택하면 사용자가 알려진 값으로 시작하는 레코드를 만들 수 있도록 양식이 새 모드로 전환됩니다.
ResetForm 함수가 실행되거나 SubmitForm 함수가 성공적으로 실행되면 폼이 편집 모드로 다시 전환됩니다.
- 단추의 Text 속성을 설정하여 Cancel 및 OnSelect 속성을 ResetForm 함수가 포함된 수식으로 표시할 수 있습니다. 사용자가 해당 단추를 선택하면 진행 중인 모든 변경 내용이 삭제되고 양식의 값이 데이터 원본의 기본값과 일치합니다.
- 단추의 Text 속성을 설정하여 변경 내용 저장 및 OnSelect 속성을 SubmitForm 함수가 포함된 수식으로 표시할 수 있습니다. 사용자가 해당 단추를 선택하고 데이터 원본이 업데이트되면 양식의 값이 데이터 원본의 기본값으로 다시 설정됩니다.
변경 내용 저장
이전 섹션에서 설명한 대로 변경 내용 저장 단추를 만드는 경우 사용자는 레코드를 만들거나 업데이트한 다음 해당 단추를 선택하여 해당 변경 내용을 데이터 원본에 저장할 수 있습니다. 대신 SubmitForm 함수를 사용하여 해당 컨트롤을 구성하는 한 이미지 컨트롤 또는 다른 컨트롤을 구성하여 동일한 작업을 수행할 수 있습니다. 어쨌든 Error, ErrorKind, OnSuccess 및 OnFailure 속성은 결과에 대한 피드백을 제공합니다.
SubmitForm 함수가 실행되면 먼저 사용자가 제출하려는 데이터의 유효성을 검사합니다. 필수 필드에 값이 없거나 다른 값이 다른 제약 조건을 준수하지 않으면 ErrorKind 속성이 설정되고 OnFailure 수식이 실행됩니다. 변경 내용 저장 단추 또는 기타 컨트롤을 구성하여 데이터가 유효한 경우에만 선택할 수 있습니다(즉, 양식의 유효한 속성이 true인 경우). 사용자는 문제를 수정할 뿐만 아니라 변경 내용 저장 단추를 다시 선택하거나 앞에서 설명한 대로 취소 단추를 선택하여 변경 내용을 취소하여 Error 및 ErrorKind 속성을 다시 설정해야 합니다.
데이터가 유효성 검사를 통과하면 SubmitForm 은 데이터 원본으로 전송하므로 네트워크 대기 시간에 따라 다소 시간이 걸릴 수 있습니다.
- 제출에 성공하면 Error 속성이 지워지고 ErrorKind 속성이 ErrorKind.None으로 설정되고 OnSuccess 수식이 실행됩니다. 사용자가 레코드를 만든 경우(즉, 폼이 이전에 새 모드인 경우) 사용자가 새로 만든 레코드 또는 다른 레코드를 편집할 수 있도록 폼이 편집 모드로 전환됩니다.
- 제출에 실패하면 오류 속성에 문제를 설명하는 데이터 원본의 사용자에게 친숙한 오류 메시지가 포함됩니다. ErrorKind 속성은 문제에 따라 적절하게 설정되고 OnFailure 수식이 실행됩니다.
일부 데이터 원본은 두 사람이 동일한 레코드를 동시에 업데이트하려고 할 때를 감지할 수 있습니다. 이 경우 ErrorKind는 ErrorKind.Conflict으로 설정되며, 해결 방법은 다른 사용자의 변경 내용으로 데이터 원본을 새로 고치고 이 사용자가 변경한 내용을 다시 적용하는 것입니다.
팁 (조언)
사용자가 진행 중인 변경 내용을 중단할 수 있도록 폼에 취소 단추를 제공하는 경우 해당 속성에도 화면 변경을 위한 Navigate 함수가 포함되어 있더라도 ResetForm 함수를 단추의 OnSelect 속성에 추가합니다. 그렇지 않으면 양식에서 사용자의 변경 내용을 유지합니다.
Layout
기본적으로 카드는 휴대폰 앱의 단일 열과 태블릿 앱의 경우 세 개의 열에 배치됩니다. 폼에 있는 열 수와 양식을 구성할 때 카드가 해당 열에 맞춰야 하는지 여부를 지정할 수 있습니다. 이러한 설정은 카드의 X, Y 및 Width 속성을 설정하는 데만 사용되므로 속성으로 노출되지 않습니다.
자세한 내용은 데이터 양식 레이아웃 이해(Understand Data Form Layout)를 참조하세요.
키 속성
DataSource – 사용자가 표시, 편집 또는 만들 레코드를 포함하는 데이터 원본입니다.
- 이 속성을 설정하지 않으면 사용자가 레코드를 표시, 편집 또는 만들 수 없으며 추가 메타데이터 또는 유효성 검사가 제공되지 않습니다.
DefaultMode - 양식 컨트롤의 초기 모드입니다. 허용되는 값 및 해당 의미는 아래 모드 설명을 참조하세요.
DisplayMode - 양식 컨트롤 내의 데이터 카드 및 컨트롤에 사용할 모드입니다.
Mode 속성 기반에서 파생되며 독립적으로 설정할 수 없습니다.
| Mode | DisplayMode | Description |
|---|---|---|
| FormMode.Edit | DisplayMode.Edit | 데이터 카드 및 컨트롤은 편집할 수 있으며 레코드 변경 내용을 수락할 준비가 된 것입니다. |
| FormMode.New | DisplayMode.Edit | 데이터 카드 및 컨트롤은 편집할 수 있으며 새 레코드를 수락할 준비가 된 것입니다. |
| FormMode.View | DisplayMode.View | 데이터 카드 및 컨트롤은 편집할 수 없으며 보기에 최적화되어 있습니다. |
오류 – SubmitForm 함수가 실패할 때 이 양식에 대해 표시할 사용자에게 친숙한 오류 메시지입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
- 이 속성은 SubmitForm, EditForm 또는 ResetForm 함수가 실행되는 경우에만 변경됩니다.
- 오류가 발생하지 않으면 이 속성은 비어 있고 ErrorKind 는 ErrorKind.None으로 설정됩니다.
- 가능한 경우 반환되는 오류 메시지는 사용자의 언어로 표시됩니다. 일부 오류 메시지는 데이터 원본에서 직접 제공되며 사용자의 언어에 없을 수 있습니다.
ErrorKind – SubmitForm 이 실행될 때 오류가 발생하면 발생한 오류의 종류입니다.
- 편집 양식 컨트롤에만 적용됩니다.
- 이 속성에는 Errors 함수와 동일한 열거형이 있습니다. 편집 양식 컨트롤은 다음 값을 반환할 수 있습니다.
| ErrorKind | Description |
|---|---|
| 오류 종류.충돌 | 다른 사용자가 동일한 레코드를 변경하여 변경 충돌이 발생했습니다. Refresh 함수를 실행하여 레코드를 다시 로드하고 변경 사항을 다시 시도합니다. |
| ErrorKind.None | 오류는 알 수 없는 종류입니다. |
| ErrorKind.Sync | 데이터 원본에서 오류를 보고했습니다. 자세한 내용은 Error 속성을 확인하세요. |
| ErrorKind.Validation | 일반적인 유효성 검사 문제가 검색되었습니다. |
항목 – 사용자가 표시하거나 편집할 DataSource 의 레코드입니다.
LastSubmit – 서버에서 생성된 필드를 포함하여 마지막으로 성공적으로 제출된 레코드입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
- 데이터 원본이 고유 번호를 가진 ID 필드와 같은 필드를 자동으로 생성하거나 계산하는 경우 SubmitForm이 성공적으로 실행된 후 LastSubmit 속성에 이 새 값이 있습니다.
- 이 속성의 값은 OnSuccess 수식에서 사용할 수 있습니다.
모드 – 컨트롤이 편집 또는 새 모드에 있습니다.
| Mode | Description |
|---|---|
| FormMode.Edit | 사용자는 양식을 사용하여 레코드를 편집할 수 있습니다. 폼 카드의 값은 사용자가 변경할 수 있도록 기존 레코드로 미리 채워집니다. SubmitForm 함수가 성공적으로 실행되면 기존 레코드가 수정됩니다. |
| FormMode.New | 사용자는 양식을 사용하여 레코드를 만들 수 있습니다. 폼 컨트롤의 값은 데이터 원본 레코드의 기본값으로 미리 채워집니다. SubmitForm 함수가 성공적으로 실행되면 레코드가 만들어집니다. |
| FormMode.View | 사용자는 양식을 사용하여 레코드를 볼 수 있습니다. 폼 컨트롤의 값은 데이터 원본 레코드의 기본값으로 미리 채워집니다. |
이러한 변경 내용이 발생하면 양식이 새 모드에서 편집 모드로 전환됩니다.
- 양식이 성공적으로 제출되고 레코드가 만들어집니다. 갤러리가 이 새 레코드로 선택 영역을 자동으로 이동하도록 설정된 경우 양식은 사용자가 추가 변경을 수행할 수 있도록 만든 레코드에 대한 편집 모드가 됩니다.
- EditForm 함수가 실행됩니다.
- ResetForm 함수가 실행됩니다. 예를 들어 사용자는 이 함수로 구성된 취소 단추를 선택할 수 있습니다.
OnFailure – 데이터 작업이 실패했을 때 수행할 작업입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
OnReset – 편집 양식 컨트롤이 다시 설정되면 수행할 작업입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
OnSuccess – 데이터 작업이 성공했을 때 수행할 작업입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
저장되지 않음 – 편집 양식 컨트롤에 저장되지 않은 사용자 변경 내용이 포함된 경우 True입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
- 저장되지 않은 변경 내용이 손실되기 전에 사용자에게 경고하려면 이 속성을 사용합니다. 현재 레코드에 대한 변경 내용을 저장하기 전에 사용자가 갤러리 컨트롤에서 다른 레코드를 선택하지 못하도록 하려면 갤러리의 Disabled 속성을 Form.Unsaved 로 설정하고 새로 고침 작업을 사용하지 않도록 설정합니다.
업데이트 – 양식 컨트롤에 로드된 레코드의 데이터 원본에 다시 쓸 값입니다.
- 이 속성은 편집 양식 컨트롤에만 적용됩니다.
- 컨트롤 내의 카드에서 필드 값을 추출하려면 이 속성을 사용합니다. 그런 다음 이러한 값을 사용하여 Patch 함수 호출 또는 연결에 의해 노출되는 다른 메서드를 사용하여 데이터 원본을 수동으로 업데이트할 수 있습니다. SubmitForm 함수를 사용하는 경우 이 속성을 사용할 필요가 없습니다.
- 이 속성은 값의 레코드를 반환합니다. 예를 들어 양식 컨트롤에 이름 및 수량 필드에 대한 카드 컨트롤이 포함되어 있고 해당 카드의 업데이트 속성 값이 각각 "위젯"과 10을 반환하는 경우 양식 컨트롤의 Updates 속성은 { Name: "Widget", Quantity: 10 }을 반환합니다.
유효 – 카드 또는 편집 양식 컨트롤에 유효한 항목이 포함되어 있는지 여부에 관계없이 데이터 원본에 제출할 준비가 되었습니다.
이 속성은 편집 양식 컨트롤에만 적용됩니다.
양식 컨트롤의 유효한 속성은 양식에 있는 모든 카드 컨트롤의 유효한 속성을 집계합니다. 양식의 유효한 속성은 해당 양식의 모든 카드에 있는 데이터가 유효한 경우에만 true 입니다. 그렇지 않으면 폼의 유효한 속성이 false입니다.
폼의 데이터가 유효하지만 아직 제출되지 않은 경우에만 변경 내용을 저장하는 단추를 사용하도록 설정하려면 단추의 DisplayMode 속성을 다음 수식으로 설정합니다.
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)
추가 속성
BorderColor – 컨트롤 테두리의 색입니다.
BorderStyle – 컨트롤의 테두리가 Solid, Dashed, Dotted 또는 None인지 여부입니다.
BorderThickness – 컨트롤 테두리의 두께입니다.
채우기 – 컨트롤의 배경색입니다.
높이 – 컨트롤의 위쪽 가장자리와 아래쪽 가장자리 사이의 거리입니다.
표시 – 컨트롤이 표시되는지 숨겨지는지 여부입니다.
너비 – 컨트롤의 왼쪽 가장자리와 오른쪽 가장자리 사이의 거리입니다.
X – 컨트롤의 왼쪽 가장자리와 부모 컨테이너의 왼쪽 가장자리 사이의 거리입니다(부모 컨테이너가 없는 경우 화면).
Y – 컨트롤의 위쪽 가장자리와 부모 컨테이너의 위쪽 가장자리 사이의 거리입니다(부모 컨테이너가 없는 경우 화면).
추가 정보
- 양식의 작동 방식에 대한 포괄적인 개요는 데이터 양식 이해(Understand Data Forms)를 참조하세요.
- EditForm에 대한 Power Fx 수식 참조를 참조하세요.
내게 필요한 옵션 지침
화면 읽기 프로그램 지원
- 레이블을 사용하여 양식에 제목을 추가하는 것이 좋습니다.