데이터 카드 이해Understand data cards

카드 컨트롤은 편집 양식표시 양식 컨트롤의 구성 요소입니다.Card controls are the building blocks of the Edit form and Display form controls. 양식은 전체 레코드를 나타내며 각 카드는 해당 레코드의 단일 필드를 나타냅니다.The form represents the entire record, and each card represents a single field of that record.

디자인 작업 영역에서 양식 컨트롤을 선택하면 오른쪽 창에서 가장 쉽게 카드와 상호 작용할 수 있습니다.You can interact with cards most easily in the right-hand pane after you select a form control in the design workspace. 해당 창에 표시할 필드, 각 필드를 표시하는 방법 및 필드를 표시할 순서를 선택할 수 있습니다.In that pane, you can choose which fields to show, how to show each field, and in what order to show them. 이 예제에서는 자산이라고 하는 SharePoint 목록에서 빌드된 앱에 있는 편집 양식 컨트롤을 보여줍니다.This example shows an Edit form control in an app built from a SharePoint list that's named Assets.

카드를 시작하려면 양식 추가데이터 양식 이해를 참조하세요.To get started with cards, see add a form and understand data forms. 이 항목의 나머지 부분에서는 카드 작동 방식 및 사용자 지정 또는 고유한 카드를 생성하는 방법에 대해 자세히 설명합니다.The remainder of this topic goes into more detail about how cards work and how you can customize or even create your own.

미리 정의된 카드Predefined cards

PowerApps는 문자열, 숫자 및 기타 데이터 형식에 미리 정의된 일련의 카드를 제공합니다.PowerApps offers a predefined set of cards for strings, numbers, and other data types. 오른쪽 창에서 사용할 수 있는 변동을 확인하고 필드에 사용되는 카드를 변경할 수 있습니다.In the right-hand pane, you can see the variations available and change the card used for a field:

이 예제에서는 한 줄 텍스트 카드가 선택되었지만 URL의 텍스트는 한 줄에 나타낼 수 있는 길이보다 깁니다.In this example, a single-line text card is selected, but the URL's text is longer than can be shown on a single line. 사용자에게 편집할 수 있는 더 많은 공간을 제공하도록 여러 줄 텍스트 카드로 변경하겠습니다.Let's change this to a multi-line text card to give our users more room to edit:

이 데이터 원본의 일부 필드는 표시되지 않지만 해당 확인란을 선택하여 필드를 표시하거나 숨길 수 있습니다.Several fields of this data source aren't being shown, but you can show or hide a field by selecting its checkbox. 이 예제에서는 SecurityCode 필드를 표시하는 방법을 보여줍니다.This example illustrates how to show the SecurityCode field.

카드 사용자 지정Customize a card

카드는 다른 컨트롤을 구성합니다.Cards comprise other controls. 편집 양식 컨트롤에서 사용자는 삽입 탭에서 추가한 표준 텍스트 입력 컨트롤에 데이터를 입력합니다.In an Edit form control, the user enters data in a standard Text input control that you add from the Insert tab.

컨트롤을 제어하여 카드의 모양을 변경하는 방법의 예제를 살펴보겠습니다.Let's walk through an example of how to change a card's appearance by manipulating controls in it.

  1. 먼저 SecurityCode 필드의 경우 가장 최근에 삽입한 카드를 다시 살펴보겠습니다.First, let's return to the card that we inserted most recently, for the SecurityCode field. 이 카드를 한 번 클릭하거나 눌러서 선택합니다.Select this card by clicking or tapping it once:

  2. 입력 컨트롤 자체를 클릭하거나 눌러서 카드 내의 텍스트 입력 컨트롤을 선택합니다.Select the Text input control inside the card by clicking or tapping the input control itself.

  3. 선택 영역 상자를 끌어와서 카드 내에서 이 컨트롤을 이동하고, 선택 영역 상자의 가장자리를 따라 핸들을 끌어와서 컨트롤의 크기를 조정합니다.Move this control within the card by dragging the selection box, and resize the control by dragging the handles along the edge of the selection box:

카드 내에서 컨트롤의 크기를 조정하고, 이동하고, 다른 내용을 수정할 수 있지만 먼저 잠금을 해제하지 않으면 삭제할 수 없습니다.You can resize, move, and make other modifications to controls within a card, but you can't delete it without unlocking it first.

카드 잠금 해제Unlock a card

컨트롤을 포함하는 것 외에도 카드 자체가 다른 컨트롤과 마찬가지로 속성 및 수식을 포함하는 컨트롤입니다.In addition to containing controls, cards themselves are controls that have properties and formulas just like any other control. 양식에 필드를 표시하려는 경우 오른쪽 창에서는 자동으로 카드를 만들고 필요한 수식을 생성합니다.When you choose to display a field on a form, the right-hand pane automatically creates the card for you and generates the needed formulas. 오른쪽 창의 고급 탭에서 이러한 수식을 볼 수 있습니다.We can see these formulas in the Advanced tab of the right-hand pane:

즉시 카드의 가장 중요한 속성 중 하나인 DataField 속성을 확인합니다.We immediately see one of the most important properties of the card: the DataField property. 이 속성은 사용자가 확인하고 이 카드에서 편집할 수 있는 데이터 원본의 필드를 나타냅니다.This property indicates which field of the data source the user sees and can edit in this card.

고급 탭에서 상단의 배너는 이 카드의 속성이 잠겨있음을 나타냅니다.On the Advanced tab, the banner at the top indicates that the properties of this card are locked. 또한 잠금 아이콘은 DataField, DisplayNameRequired 속성 옆에 나타납니다.A lock icon also appears next to the DataField, DisplayName, and Required properties. 오른쪽 창에서는 이러한 수식을 생성했다면 잠금은 이러한 속성을 실수로 변경하지 않도록 방지합니다.The right-hand pane created these formulas, and the lock prevents accidental changes to these properties.

이러한 속성을 수정할 수 있도록 위쪽의 배너를 클릭하거나 눌러서 카드의 잠금을 해제합니다.Click or tap the banner at the top to unlock the card so that you can modify these properties:

DisplayName을 수정하여 자산ID 간에 공백을 만들겠습니다.Let's modify the DisplayName to put a space between Asset and ID. 이렇게 변경하여 생성된 내용을 변경하고 있습니다.By making this change, we're altering what was generated for us. 오른쪽 창에서 이 카드에는 다른 레이블이 있습니다.In the right-hand pane, this card has a different label:

이제 이 카드를 제어하고 요구에 맞도록 추가로 수정할 수 있습니다.We've now taken control over this card and can modify it further to fit our need. 하지만 이전과 같이 카드의 표현을 변경할 수 있는 기능(예: 한 줄 텍스트를 여러 줄 텍스트로 변경)이 상실되었습니다.But we've lost the ability to change the card from one representation to another (for example, single-line text to multi-line text) as we did before. 미리 정의된 카드를 지금 제어하는 "사용자 지정 카드"로 변환했습니다.We've transformed the predefined card into a "custom card" that we now control.

중요: 카드의 잠금을 해제하는 경우 카드를 다시 잠글 수 없습니다.Important: You can't relock a card if you unlock it. 카드를 잠긴 상태로 다시 돌리려면 해당 카드를 제거하고 오른쪽 창에서 다시 삽입합니다.To get a card back to a locked state, remove it, and reinsert it in the right-hand pane.

다양한 방법으로 잠금이 해제된 카드의 모양 및 동작을 변경할 수 있습니다(예: 내부에서 컨트롤 추가 및 삭제).You can change the appearance and behavior of an unlocked card in a variety of ways, such as adding and deleting controls within it. 예를 들어 삽입 탭의 아이콘 메뉴에서 별 모양을 추가할 수 있습니다.For example, you can add a star shape from the Icons menu on the Insert tab.

별은 이제 카드의 일부이기 때문에 예를 들어 양식 내에서 카드의 순서를 바꾸는 경우에도 함께 이동됩니다.The star is now a part of the card and will travel with it if, for example, you reorder the cards within the form.

또 다른 예제로 ImageURL 카드의 잠금을 해제한 다음 이미지 컨트롤을 삽입 탭의 해당 카드에 추가합니다.As another example, unlock the ImageURL card, and then add an Image control to it from the Insert tab:

수식 입력줄에서 이 컨트롤의 Image 속성을 TextBox.Text로 설정합니다. 여기서 TextBox는 URL을 포함하는 텍스트 입력 컨트롤의 이름입니다.In the formula bar, set the Image property of this control to TextBox.Text, where TextBox is the name of the Text input control that holds the URL:

: Alt 키를 누르고 있으면 각 컨트롤의 이름이 표시됩니다.Tip: Press the Alt key to show the name of each control.

이제 이미지를 확인하고 해당 URL을 편집할 수 있습니다.And now we can see the images and edit their URLs. Parent.DefaultImage 속성으로 사용했지만 사용자가 URL를 변경한 경우 없게 업데이트되지 않습니다.Note that we could have used Parent.Default as the Image property, but it wouldn't have updated if the user changed the URL.

이 앱의 두 번째 화면에서 동일한 작업을 수행할 수 있습니다. 여기서 표시 양식 컨트롤을 사용하여 레코드의 세부 정보를 표시합니다.We can do the same thing on the second screen of this app, where we use a Display form control to display the details of a record. 이 경우에 사용자가 해당 화면에서 URL을 편집하지 않기 때문에 레이블을 숨기는 것이 좋습니다(레이블의 Visible 속성을 카드가 아닌 false로 설정).In this case, we may want to hide the label (set the Visible property of the label, not the card, to false) because the user won't edit the URL on that screen:

양식 사용Interact with a form

카드의 잠금을 해제한 후에 이를 포함하는 양식을 사용하는 방법을 변경할 수 있습니다.After you unlock a card, you can change how it interacts with the form that contains it.

컨트롤이 해당 카드를 사용하는 방법 및 카드가 양식을 사용하는 방법에 대한 몇 가지 지침은 다음과 같습니다.Below are some guidelines for how controls should work with their card and how the cards should work with the form. 이들은 지침일 뿐입니다.These are only guidelines. PowerApps의 모든 컨트롤과 마찬가지로 PowerApps에 있는 다른 컨트롤을 참조하고 카드 및 카드 내의 컨트롤에서 true인 수식을 만들 수 있습니다.As with any control in PowerApps, you can create formulas that reference any other control in PowerApps, and that's no less true for cards and controls within cards. 창의적인 여러 가지 방법으로 앱을 만들 수 있습니다.Be creative: you can create an app in many ways.

DataField 속성DataField property

카드의 가장 중요한 속성은 DataField 속성입니다.The most important property on the card is the DataField property. 이 속성은 유효성 검사, 업데이트되는 필드 및 카드의 기타 측면을 생성합니다.This property drives validation, what field is updated, and other aspects of the card.

들어오는 정보Information flowing in

양식은 컨테이너로써 ThisItem를 내부의 모든 카드에 사용할 수 있습니다.As a container, the form makes ThisItem available to all cards within it. 이 레코드는 현재 사용 중인 레코드에 대한 모든 필드를 포함합니다.This record contains all of the fields for the current record of interest.

모든 카드의 Default 속성을 ThisItem.FieldName으로 설정해야 합니다.The Default property of every card should be set to ThisItem.FieldName. 특정 상황에서 중간에 이 값을 변환할 수 있습니다.Under certain circumstances, you might want to transform this value on the way in. 예를 들어 문자열을 포맷하거나 값을 다른 언어로 변환하려고 합니다.For example, you might want to format a string or translate the value from one language to another.

카드 내의 각 컨트롤은 Parent.Default를 참조하여 필드의 값을 가져와야 합니다.Each control within the card should reference Parent.Default to get at the field's value. 이 전략에서는 카드의 내부 수식을 변경하지 않고 카드의 Default 속성을 변경할 수 있도록 카드에 대한 캡슐화의 수준을 제공합니다.This strategy provides a level of encapsulation for the card so that the card's Default property can change without changing the internal formulas of the card.

기본적으로 DefaultValueRequired 속성은 DataField 속성에 따라 데이터 원본의 메타데이터에서 가져옵니다.By default, DefaultValue and Required properties are taken from the data source's metadata based on the DataField property. 고유한 논리로 이러한 수식을 재정의하고 DataSourceInfo 함수를 사용하여 데이터 원본의 메타데이터를 통합할 수 있습니다.You can override these formulas with your own logic, integrating the data source's metadata by using the DataSourceInfo function.

내보내는 정보Information flowing out

사용자가 카드에서 컨트롤을 사용하여 레코드를 수정한 후에 SubmitForm 함수는 데이터 원본에 해당 변경 내용을 저장합니다.After the user modifies a record by using controls in the cards, the SubmitForm function saves those changes to the data source. 해당 함수가 실행되면 양식 컨트롤은 각 카드의 DataField 속성 값을 읽고 변경할 필드에 대해 알아봅니다.When that function runs, the form control reads the values of each card's DataField property to know what field to change.

또한 양식 컨트롤은 각 카드의 Update 속성 값을 읽습니다.The form control also reads the value of each card's Update property. 이 값을 이 필드에 대한 데이터 원본에 저장합니다.This value will be stored in the data source for this field. 카드의 Default 수식에서 적용된 변환을 되돌리려면 여기에서 다른 변환을 적용하면 됩니다.This is the place to apply another transform, perhaps to reverse the transform that was applied in the card's Default formula.

Valid 속성은 DataField 속성에 따라 데이터 원본의 메타데이터에서 생성됩니다.The Valid property is driven from the metadata of the data source, based on the DataField property. 또한 Required 속성 및 Update 속성이 값을 포함하는지 여부에 기반합니다.It's also based on the Required property and whether the Update property contains a value. Update 속성의 값이 유효하지 않으면 Error 속성은 사용자에게 친숙한 오류 메시지를 제공합니다.If the value on the Update property isn't valid, the Error property provides a user-friendly error message.

카드의 DataField 속성이 비어 있는 경우 카드는 컨트롤의 컨테이너일 뿐입니다.If the DataField property of a card is blank, the card is just a container of controls. 양식이 전송될 때 해당 ValidUpdate 속성이 사용되지 않습니다.Its Valid and Update properties don't participate when the form is submitted.

예제 분석Dissecting an example

기본 데이터 항목 카드를 구성하는 컨트롤을 살펴보겠습니다.Let's look at the controls that make up a basic data-entry card. 컨트롤 간의 공백이 늘어나서 각각을 보다 명확하게 표시합니다.The space between controls has been increased to show each more clearly:

Alt 키를 누르고 있으면 이 카드를 구성하는 컨트롤의 이름을 표시합니다.Hold down the Alt key to show the names of the controls that make up this card:

네 가지 컨트롤은 이 카드를 작동시킵니다.Four controls make this card work:

이름Name 유형Type 설명Description
TextRequiredStarTextRequiredStar 레이블 컨트롤Label control 필수 필드를 나타내기 위해 일반적으로 데이터 항목 양식에서 사용되는 별을 표시합니다.Displays a star, which is commonly used on data-entry forms to indicate that a field is required.
TextFieldDisplayNameTextFieldDisplayName 레이블 컨트롤Label control 이 필드의 사용자 친화적 이름을 표시합니다.Displays the user-friendly name of this field. 이 이름은 데이터 원본의 스키마에 포함된 내용과 다를 수 있습니다.This name can differ from what is in the data source's schema.
InputTextInputText 입력 텍스트 컨트롤Input text control 필드의 초기 값을 표시하고 해당 값을 변경할 수 있습니다.Displays the initial value of the field and allows the user to change that value.
TextErrorMessageTextErrorMessage 레이블 컨트롤Label control 유효성 검사에서 문제가 발생한 경우 사용자에게 친숙한 오류 메시지가 표시됩니다.Displays a user-friendly error message to the user if a problem occurs with validation. 또한 필요한 경우 필드에 값이 있는지 확인합니다.Also ensures that the field has a value if one is required.

이러한 컨트롤을 데이터로 채우려면 해당 속성은 이러한 주요 수식을 통해 카드의 속성에서 생성될 수 있습니다.To populate these controls with data, their properties can be driven from the properties of the card, through these key formulas. 이러한 수식은 특정 필드를 참조하지 않습니다.Note that none of these formulas refers to a specific field. 대신 모든 정보는 카드에서 가져옵니다.Instead, all information comes from the card.

컨트롤 속성Control property 수식Formula 설명Description
TextRequiredStar.VisibleTextRequiredStar.Visible Parent.RequiredParent.Required 별은 필드가 필요한 경우에만 나타납니다.The star appears only if the field is required. 사용자 또는 데이터 원본의 메타데이터에 의해 작성된 수식이 필요합니다.Required is a formula that's driven by you or the metadata of the data source.
TextFieldDisplayName.TextTextFieldDisplayName.Text Parent.DisplayNameParent.DisplayName 텍스트 상자 컨트롤은 데이터 원본의 메타데이터에서 제공하는 사용자 친화적인 이름을 보여주며 카드의 DisplayName 속성에서 설정됩니다.The text-box control shows the user-friendly name, which you or the data source's metadata provides, and which is set on the card's DisplayName property.
InputText.DefaultInputText.Default Parent.DefaultParent.Default 카드의 기본값에서 제공한 대로 텍스트 입력 컨트롤은 처음부터 데이터 원본의 필드 값을 보여줍니다.The text-input control initially shows the value of the field from the data source, as provided by the card's default value.
TextErrorMessage.TextTextErrorMessage.Text Parent.ErrorParent.Error 유효성 검사 문제가 발생한 경우 카드의 오류 속성은 해당 오류 메시지를 제공합니다.If a validation problem occurs, the card's Error property provides an appropriate error message.

이러한 컨트롤에서 정보를 끌어오고 다시 데이터 원본에 푸시하기 위해 다음 키 수식이 필요합니다.To pull information out of these controls and push it back into the data source, we have the following key formulas:

컨트롤 이름Control name 수식Formula 설명Description
DataCard.DataFieldDataCard.DataField "ApproverEmail""ApproverEmail" 사용자가 이 카드에서 표시하고 편집할 수 있는 필드의 이름입니다.The name of the field that the user can display and edit in this card.
DataCard.UpdateDataCard.Update InputText.TextInputText.Text SubmitForm을 실행할 때 유효성을 검사하고 데이터 원본에 다시 푸시할 값입니다.The value to validate and push back into the data source when SubmitForm runs.