Compreender cartões de dadosUnderstand data cards

Os controlos de Cartão são os blocos modulares dos controlos Formulário de edição e Formulário de apresentação.Card controls are the building blocks of the Edit form and Display form controls. O formulário representa o registo completo e cada cartão representa um único campo desse registo.The form represents the entire record, and each card represents a single field of that record.

Pode interagir com cartões mais facilmente no painel da direita depois de selecionar um controlo de formulário na área de trabalho de design.You can interact with cards most easily in the right-hand pane after you select a form control in the design workspace. Nesse painel, pode escolher os campos que pretende mostrar, como mostrar cada campo e a ordem pela qual pretende mostrá-los.In that pane, you can choose which fields to show, how to show each field, and in what order to show them. Este exemplo mostra um controlo Formulário de edição numa aplicação criada a partir de uma lista do SharePoint com o nome Assets.This example shows an Edit form control in an app built from a SharePoint list that's named Assets.

Para começar a utilizar cartões, veja os artigos adicionar um formulário e compreender formulários dados.To get started with cards, see add a form and understand data forms. O resto deste tópico explica mais pormenorizadamente como funcionam os cartões e como pode personalizar ou até criar os seus próprios cartões.The remainder of this topic goes into more detail about how cards work and how you can customize or even create your own.

Cartões predefinidosPredefined cards

O PowerApps oferece um conjunto predefinido de cartões para cadeias, números e outros tipos de dados.PowerApps offers a predefined set of cards for strings, numbers, and other data types. No painel da direita, pode ver as variações disponíveis e alterar o cartão utilizado para um campo:In the right-hand pane, you can see the variations available and change the card used for a field:

Neste exemplo, é selecionado um cartão de texto de linha única, mas o texto do URL ultrapassa o limite que pode ser apresentado numa única linha.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. Vamos alterar este cartão para um cartão de texto com várias linhas para dar aos nossos utilizadores mais espaço para editarem:Let's change this to a multi-line text card to give our users more room to edit:

Vários campos desta origem de dados não estão a ser apresentados, mas pode mostrar ou ocultar um campo, selecionando a caixa de verificação.Several fields of this data source aren't being shown, but you can show or hide a field by selecting its checkbox. Este exemplo ilustra como mostrar o campo SecurityCode.This example illustrates how to show the SecurityCode field.

Personalizar um cartãoCustomize a card

Os cartões são constituídos por outros controlos.Cards comprise other controls. Num controlo de Formulário de edição, o utilizador introduz dados num controlo de Introdução de texto padrão, que adiciona a partir do separador Inserir.In an Edit form control, the user enters data in a standard Text input control that you add from the Insert tab.

Vejamos um exemplo de como alterar o aspeto de um cartão, manipulando os controlos no mesmo.Let's walk through an example of how to change a card's appearance by manipulating controls in it.

  1. Em primeiro lugar, vamos voltar ao cartão que inserimos mais recentemente, para o campo SecurityCode.First, let's return to the card that we inserted most recently, for the SecurityCode field. Selecione este cartão ao clicar ou tocar no mesmo uma vez:Select this card by clicking or tapping it once:

  2. Selecione o controlo de Introdução de texto dentro do cartão ao clicar ou tocar no próprio controlo de introdução.Select the Text input control inside the card by clicking or tapping the input control itself.

  3. Mova este controlo no cartão, arrastando a caixa de seleção, e redimensione o controlo, arrastando as alças ao longo do limite da caixa de seleção: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:

Pode redimensionar, mover e fazer outras modificações a controlos dentro de um cartão, mas não é possível eliminá-lo sem o desbloquear primeiro.You can resize, move, and make other modifications to controls within a card, but you can't delete it without unlocking it first.

Desbloquear um cartãoUnlock a card

Para além dos controlos que contêm, os próprios cartões são controlos que têm propriedades e fórmulas, tal como qualquer outro controlo.In addition to containing controls, cards themselves are controls that have properties and formulas just like any other control. Quando opta por apresentar um campo num formulário, o painel da direita cria automaticamente o cartão e gera as fórmulas necessárias.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. É possível ver estas fórmulas no separador Avançadas do painel da direita:We can see these formulas in the Advanced tab of the right-hand pane:

Vemos de imediato uma das propriedades mais importantes do cartão: a propriedadeDataField.We immediately see one of the most important properties of the card: the DataField property. Esta propriedade indica o campo da origem de dados que o utilizador vê e pode editar neste cartão.This property indicates which field of the data source the user sees and can edit in this card.

No separador Avançadas, a faixa na parte superior do separador indica que as propriedades deste cartão estão bloqueadas.On the Advanced tab, the banner at the top indicates that the properties of this card are locked. Um ícone de cadeado também é apresentado junto às propriedades DataField, DisplayName e Required.A lock icon also appears next to the DataField, DisplayName, and Required properties. O painel da direita criou estas fórmulas e o cadeado impede alterações acidentais a essas propriedades.The right-hand pane created these formulas, and the lock prevents accidental changes to these properties.

Clique ou toque na faixa na parte superior para desbloquear o cartão, de modo a que possa modificar estas propriedades:Click or tap the banner at the top to unlock the card so that you can modify these properties:

Vamos modificar a propriedade DisplayName para colocar um espaço entre Asset e ID.Let's modify the DisplayName to put a space between Asset and ID. Ao fazer esta alteração, estamos a alterar o que foi gerado automaticamente.By making this change, we're altering what was generated for us. No painel da direita, este cartão tem uma etiqueta diferente:In the right-hand pane, this card has a different label:

Agora, já assumimos o controlo deste cartão e podemos modificá-lo mais de acordo com as nossas necessidades.We've now taken control over this card and can modify it further to fit our need. Porém, perdemos a capacidade de alterar o cartão de uma representação para outra (por exemplo, texto de linha única para texto com várias linhas), tal como fizemos anteriormente.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. Transformámos o cartão predefinido num "cartão personalizado" que agora controlamos.We've transformed the predefined card into a "custom card" that we now control.

Importante: Se desbloquearmos um cartão, não é possível voltar a bloqueá-lo.Important: You can't relock a card if you unlock it. Para voltar a colocar um cartão no estado bloqueado, remova-o e volte a inseri-lo no painel da direita.To get a card back to a locked state, remove it, and reinsert it in the right-hand pane.

Pode alterar o aspeto e o comportamento de um cartão desbloqueado de diversas formas, tal como ao adicionar e eliminar controlos no mesmo.You can change the appearance and behavior of an unlocked card in a variety of ways, such as adding and deleting controls within it. Por exemplo, pode adicionar uma forma de estrela a partir do menu Ícones no separador Inserir.For example, you can add a star shape from the Icons menu on the Insert tab.

A estrela faz agora parte do cartão e será movida com ele se, por exemplo, reordenar os cartões dentro do formulário.The star is now a part of the card and will travel with it if, for example, you reorder the cards within the form.

Outro exemplo: desbloqueie o cartão ImageURL e, em seguida, adicione um controlo de Imagem ao mesmo a partir do separador Inserir:As another example, unlock the ImageURL card, and then add an Image control to it from the Insert tab:

Na barra de fórmulas, defina a propriedade Image deste controlo como TextBox.Text, sendo que TextBox é o nome do controlo de Introdução de texto que contém o 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:

Sugestão: prima a tecla Alt para mostrar o nome de cada controlo.Tip: Press the Alt key to show the name of each control.

Agora, podemos ver as imagens e editar os respetivos URLs.And now we can see the images and edit their URLs. Repare que podíamos ter utilizado Parent.Default como a propriedade Image, mas não teria sido atualizada se o utilizador alterasse o 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.

Podemos fazer o mesmo no segundo ecrã desta aplicação, onde utilizámos um controlo de Formulário de apresentação para mostrar os detalhes de um registo.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. Neste caso, podemos querer ocultar a etiqueta (definir a propriedade Visible da etiqueta, e não do cartão, como false) porque o utilizador não irá editar o URL nesse ecrã: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:

Interagir com um formulárioInteract with a form

Depois de desbloquear um cartão, pode alterar a forma como interage com o formulário que o contém.After you unlock a card, you can change how it interacts with the form that contains it.

Seguem-se algumas diretrizes relativas ao modo como os controlos devem funcionar com o respetivo cartão e como os cartões devem funcionar com o formulário.Below are some guidelines for how controls should work with their card and how the cards should work with the form. Tratam-se apenas de diretrizes.These are only guidelines. Tal como acontece com qualquer controlo no PowerApps, pode criar fórmulas que façam referência a qualquer outro controlo no PowerApps, e tal não é menos verdadeiro para os cartões e os controlos nos cartões.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. Seja criativo: pode criar uma aplicação de várias formas.Be creative: you can create an app in many ways.

Propriedade DataFieldDataField property

A propriedade mais importante no cartão é a propriedade DataField.The most important property on the card is the DataField property. Esta propriedade aciona a validação, o campo que é atualizado e outros aspetos do cartão.This property drives validation, what field is updated, and other aspects of the card.

Entrada de informaçõesInformation flowing in

Como contentor, o formulário torna ThisItem disponível para todos os cartões dentro do mesmo.As a container, the form makes ThisItem available to all cards within it. Este registo contém todos os campos para o registo de interesse atual.This record contains all of the fields for the current record of interest.

A propriedade Default de cada cartão deve ser definida como ThisItem.FieldName.The Default property of every card should be set to ThisItem.FieldName. Em determinadas circunstâncias, poderá querer transformar este valor na entrada.Under certain circumstances, you might want to transform this value on the way in. Por exemplo, pode querer formatar uma cadeia ou traduzir o valor de um idioma para outro.For example, you might want to format a string or translate the value from one language to another.

Cada controlo no cartão deve fazer referência a Parent.Default para obter no valor do campo.Each control within the card should reference Parent.Default to get at the field's value. Esta estratégia fornece um nível de encapsulamento para o cartão, de modo a que a propriedade Default do cartão possa ser alterada sem alterar as fórmulas internas do cartão.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.

Por predefinição, as propriedades DefaultValue e Required são obtidas a partir dos metadados da origem de dados com base na propriedade DataField.By default, DefaultValue and Required properties are taken from the data source's metadata based on the DataField property. Pode substituir estas fórmulas pela sua própria lógica, integrando os metadados da origem de dados através da função DataSourceInfo.You can override these formulas with your own logic, integrating the data source's metadata by using the DataSourceInfo function.

Saída de informaçõesInformation flowing out

Depois de o utilizador modificar um registo através de controlos nos cartões, a função SubmitForm guarda essas alterações à origem de dados.After the user modifies a record by using controls in the cards, the SubmitForm function saves those changes to the data source. Quando essa função é executada, o controlo de formulário lê os valores da propriedade DataField de cada cartão para saber que campo alterar.When that function runs, the form control reads the values of each card's DataField property to know what field to change.

O controlo de formulário também lê o valor da propriedade Update de cada cartão.The form control also reads the value of each card's Update property. Este valor será armazenado na origem de dados para este campo.This value will be stored in the data source for this field. Este é o local onde aplicar outra transformação, talvez para inverter a transformação que foi aplicada na fórmula Default do cartão.This is the place to apply another transform, perhaps to reverse the transform that was applied in the card's Default formula.

A propriedade Valid é condicionada a partir dos metadados da origem de dados, com base na propriedade DataField.The Valid property is driven from the metadata of the data source, based on the DataField property. Também se baseia na propriedade Required e no facto de a propriedade Update incluir ou não um valor.It's also based on the Required property and whether the Update property contains a value. Se o valor na propriedade Update não for válido, a propriedade Error fornece uma mensagem de erro simples.If the value on the Update property isn't valid, the Error property provides a user-friendly error message.

Se a propriedade DataField de um cartão estiver em branco, o cartão é apenas um contentor de controlos.If the DataField property of a card is blank, the card is just a container of controls. As respetivas propriedades Valid e Update não participam quando o formulário é submetido.Its Valid and Update properties don't participate when the form is submitted.

Analisar um exemplo em profundidadeDissecting an example

Vamos observar os controlos que compõem um cartão básico de entrada de dados.Let's look at the controls that make up a basic data-entry card. O espaço entre controlos foi aumentado para mostrar cada um deles mais claramente:The space between controls has been increased to show each more clearly:

Mantenha premida a tecla Alt para mostrar os nomes dos controlos que compõem este cartão:Hold down the Alt key to show the names of the controls that make up this card:

Quatro controlos fazem este cartão funcionar:Four controls make this card work:

NomeName TipoType DescriçãoDescription
TextRequiredStarTextRequiredStar Controlo de EtiquetaLabel control Apresenta uma estrela, que é normalmente utilizada em formulários de introdução de dados para indicar que um campo é obrigatório.Displays a star, which is commonly used on data-entry forms to indicate that a field is required.
TextFieldDisplayNameTextFieldDisplayName Controlo de EtiquetaLabel control Apresenta o nome amigável deste campo.Displays the user-friendly name of this field. Este nome pode ser diferente daquele que está no esquema da origem de dados.This name can differ from what is in the data source's schema.
InputTextInputText Controlo de Texto de entradaInput text control Apresenta o valor inicial do campo e permite ao utilizador alterar esse valor.Displays the initial value of the field and allows the user to change that value.
TextErrorMessageTextErrorMessage Controlo de EtiquetaLabel control Apresenta uma mensagem de erro simples para o utilizador se ocorrer um problema com a validação.Displays a user-friendly error message to the user if a problem occurs with validation. Também garante que o campo tem um valor, caso seja necessário um.Also ensures that the field has a value if one is required.

Para preencher estes controlos com dados, as respetivas propriedades podem ser condicionadas a partir das propriedades do cartão, através destas fórmulas chave.To populate these controls with data, their properties can be driven from the properties of the card, through these key formulas. Tenha em atenção que nenhuma destas fórmulas se refere a um campo específico.Note that none of these formulas refers to a specific field. Todas as informações provêm do cartão.Instead, all information comes from the card.

Propriedade do controloControl property FórmulaFormula DescriçãoDescription
TextRequiredStar.VisibleTextRequiredStar.Visible Parent.RequiredParent.Required A estrela só é apresentada se o campo for obrigatório.The star appears only if the field is required. Required é uma fórmula que é condicionada por si ou pelos metadados da origem de dados.Required is a formula that's driven by you or the metadata of the data source.
TextFieldDisplayName.TextTextFieldDisplayName.Text Parent.DisplayNameParent.DisplayName O controlo de caixa de texto mostra o nome amigável, fornecido por si ou pelos metadados da origem de dados, e que está definido na propriedade DisplayName do cartão.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 O controlo de introdução de texto mostra inicialmente o valor do campo da origem de dados, tal como fornecido pelo valor predefinido do cartão.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 Se ocorrer um problema de validação, a propriedade Error do cartão fornece uma mensagem de erro apropriada.If a validation problem occurs, the card's Error property provides an appropriate error message.

Para extrair informações destes controlos e enviá-las novamente para a origem de dados, temos as fórmulas chave seguintes:To pull information out of these controls and push it back into the data source, we have the following key formulas:

Nome do controloControl name FórmulaFormula DescriçãoDescription
DataCard.DataFieldDataCard.DataField "ApproverEmail""ApproverEmail" O nome do campo que o utilizador pode apresentar e editar neste cartão.The name of the field that the user can display and edit in this card.
DataCard.UpdateDataCard.Update InputText.TextInputText.Text O valor para validar e voltar a emitir para a origem de dados quando a função SubmitForm for executada.The value to validate and push back into the data source when SubmitForm runs.