Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cartões de dados são os blocos de construção que fazem os formulários funcionarem em seus aplicativos de canvas. Este artigo mostra como personalizar cartões para exibir e coletar dados exatamente como você precisa dele.
Controles de formulário de exibição e controles de formulário de edição nos aplicativos de tela são contêineres para registros inteiros. Cada formulário tem vários controles de cartão, que são blocos de construção do formulário. Cada cartão mostra ou permite que você edite um único campo do registro e se conecta a esse campo por meio de sua propriedade DataField. O formulário mostra o registro completo e cada cartão se concentra em um campo, para que você controle como os dados são mostrados ou atualizados.
O que você aprenderá:
- Como personalizar cartões de dados existentes
- Como desbloquear cartões para modificações avançadas
- Como criar interações de cartão personalizadas
Pré-requisitos: Se você for novo nos formulários, comece lendo adicionar um formulário e entender os formulários de dados.
Experimente: alterar um tipo de cartão
Você pode tentar personalizar imediatamente os cartões em qualquer aplicativo. O Power Apps oferece cartões predefinidos para cadeias de caracteres, números e outros tipos de dados.
Para alterar um cartão:
- Abra seu aplicativo para edição no Power Apps Studio.
- Selecione um controle de formulário no modo de exibição de árvore.
- No painel Propriedades , localize o campo que você deseja modificar.
- Selecione o tipo de cartão na lista suspensa para ver as opções disponíveis.
No painel direito, você vê os tipos disponíveis e pode alterar o cartão usado para um campo.
Neste exemplo, um cartão de texto de linha única é selecionado, mas o texto da URL é maior do que o que se encaixa em uma linha. Altere esse cartão para um cartão de texto de várias linhas para que os usuários tenham mais espaço para editar.
Vários campos desta fonte de dados não estão sendo mostrados, mas você pode mostrar ou ocultar um campo selecionando a respectiva caixa de seleção. Este exemplo mostra como mostrar o campo SecurityCode .
Personalizar um cartão
Os cartões contêm vários controles. Em um controle Editar formulário, o usuário insere dados em um controle Entrada de texto padrão que você adiciona da guia Inserir.
Este artigo explica como alterar a aparência de um cartão alterando os controles nele.
Retorne ao cartão que você inseriu mais recentemente para o campo SecurityCode . Selecione este cartão selecionando-o uma vez:
Selecione o controle de entrada texto dentro do cartão selecionando o próprio controle de entrada.
Mova o controle dentro do cartão arrastando a caixa de seleção e redimensionando-o arrastando as alças ao longo da borda da caixa de seleção.
Você pode redimensionar, mover e fazer outras modificações em controles dentro de um cartão, mas não pode excluir um controle sem desbloqueá-lo primeiro.
Desbloquear um cartão
Além de conter controles, os cartões são controles com propriedades e fórmulas, que você pode usar para personalização avançada. Quando você opta por exibir um campo em um formulário, o painel direito cria automaticamente o cartão e gera as fórmulas necessárias, economizando tempo e esforço. Você pode ver essas fórmulas na guia Avançado do painel direito:
Você vê imediatamente uma das propriedades mais importantes do cartão: a propriedade DataField. Essa propriedade indica qual campo da fonte de dados que o usuário vê e pode editar nesse cartão.
Na guia Avançado, a faixa na parte superior indica que as propriedades desse cartão estão bloqueadas. Um ícone de cadeado também é exibido ao lado das propriedades DataField, DisplayName e Required. O painel direito criou essas fórmulas, e o bloqueio impede alterações acidentais nessas propriedades.
Selecione a faixa na parte superior para desbloquear o cartão para que você possa modificar essas propriedades:
Modifique o DisplayName para colocar um espaço entre Ativo e ID. Ao fazer essa alteração, você está alterando o que foi gerado para você. No painel direito, esse cartão tem um rótulo diferente:
Agora você assume o controle sobre esse cartão e pode modificá-lo ainda mais para atender às suas necessidades. Mas você perde a capacidade de alterar o cartão de uma representação para outra (por exemplo, texto de linha única para texto de várias linhas) como antes. Você transformou o cartão predefinido em um "cartão personalizado" que agora você controla.
Importante
Não será possível bloquear um cartão novamente se você o desbloquear. Para retornar um cartão a um estado bloqueado, remova-o e insira-o novamente no painel direito.
Você pode alterar a aparência e o comportamento de um cartão desbloqueado de várias maneiras, como adição e exclusão de controles nele. Por exemplo, você pode adicionar uma forma de estrela do menu Ícones na guia Inserir.
A estrela agora faz parte do cartão e viaja com ele se, por exemplo, você reordenar os cartões dentro do formulário.
Como outro exemplo, desbloqueie o cartão ImageURL e, em seguida, adicione um controle Imagem a ele da guia Inserir:
Na barra de fórmulas, defina a propriedade Image desse controle como TextBox.Text, em que TextBox é o nome do controle Entrada de texto que contém a URL:
Agora você pode ver as imagens e editar suas URLs. Você poderia ter usado Parent.Default como a propriedade Image , mas ela não teria sido atualizada se o usuário alterasse a URL.
Você pode fazer a mesma coisa na segunda tela deste aplicativo, em que você usa um controle de formulário de exibição para exibir os detalhes de um registro. Nesse caso, talvez você queira ocultar o rótulo (definir a propriedade Visible do rótulo, não o cartão, como false) porque o usuário não edita a URL nessa tela:
Interagir com um formulário
Depois de desbloquear um cartão, é possível alterar a maneira como ele interage com o formulário que o contém.
Aqui estão algumas diretrizes sobre como os controles funcionam com o cartão e como os cartões funcionam com o formulário. Estas diretrizes ajudam você a entender como criar fórmulas que fazem referência a outros controles, inclusive cartões e controles dentro de cartões. Seja criativo - você pode criar um aplicativo de várias maneiras para atender às suas necessidades específicas.
Propriedade DataField
A propriedade mais importante no cartão é a propriedade DataField. Essa propriedade controla a validação, determina qual campo é atualizado e gerencia outros aspectos do cartão.
Fluxo de entrada de informações
Como um contêiner, o formulário disponibiliza ThisItem para todos os cartões dentro dele. Esse registro contém todos os campos do registro atual de seu interesse.
Defina a propriedade Padrão de cada cartão como ThisItem. FieldName. Em alguns casos, convém transformar esse valor à medida que ele entra. Por exemplo, talvez convenha formatar uma cadeia de caracteres ou converter o valor de um idioma para outro.
Cada controle dentro do cartão deve fazer referência a Parent.Default para obter o valor do campo. Essa estratégia encapsula o cartão, permitindo que a propriedade Default do cartão seja alterada sem afetar suas fórmulas internas.
Por padrão, os metadados da fonte de dados definem as propriedades DefaultValue e Required com base na propriedade DataField . É possível substituir essas fórmulas por sua própria lógica, integrando os metadados da fonte de dados usando a função DataSourceInfo.
Fluxo de saída de informações
Depois que o usuário modifica um registro usando controles nos cartões, a função SubmitForm salva essas alterações na fonte de dados. Quando essa função é executada, o controle de formulário lê os valores da propriedade DataField de cada cartão para saber qual campo alterar.
O controle de formulário também lê o valor da propriedade Update de cada cartão. Esta valor é armazenado na fonte de dados para esse campo. Esse é o lugar para aplicar outra transformação, talvez para reverter a transformação que você aplicou na fórmula Padrão do cartão.
A propriedade Valid é conduzida dos metadados da fonte de dados, com base na propriedade DataField. Ela também é baseada na propriedade Required e se a propriedade Update contiver um valor. Se o valor na propriedade Update não for válido, a propriedade Error fornecerá uma mensagem de erro amigável.
Se a propriedade DataField de um cartão estiver em branco, o cartão atua como um contêiner de controles. Suas propriedades Valid e Update não participam quando o formulário é enviado.
Como dissecar um exemplo
Vamos explorar os controles que compõem um cartão de entrada de dados básico. O espaço entre controles é aumentado para mostrar cada um com mais clareza, ajudando você a entender como cada componente contribui para a funcionalidade do cartão:
Neste gráfico, os controles dentro do cartão de dados são rotulados:
Quatro controles fazem o cartão funcionar:
| Nome | Tipo | Descrição |
|---|---|---|
| TextRequiredStar | ControleRótulo | Mostra uma estrela, normalmente usada em formulários de entrada de dados para indicar que um campo é obrigatório. |
| TextFieldDisplayName | ControleRótulo | Mostra o nome amigável do campo. Esse nome pode ser diferente do que está no esquema da fonte de dados. |
| InputText | Controle Texto de entrada | Mostra o valor inicial do campo e permite que o usuário altere esse valor. |
| TextErrorMessage | ControleRótulo | Mostra uma mensagem de erro amigável ao usuário se ocorre um problema com a validação. Também garante que o campo tenha um valor caso seja obrigatório ter um. |
Para preencher esses controles com os dados, suas propriedades são controladas com base nas propriedades do cartão, por meio dessas fórmulas principais. As fórmulas referem-se a um campo específico. Em vez disso, todas as informações são provenientes do cartão.
| Propriedade Control | Fórmula | Descrição |
|---|---|---|
| TextRequiredStar.Visible | Parent.Required | A estrela só será exibida se o campo for obrigatório. Obrigatório é uma fórmula que você define ou os metadados da fonte de dados. |
| TextFieldDisplayName.Text | Parent.DisplayName | O controle de caixa de texto mostra o nome amigável, que você ou os metadados da fonte de dados fornece e que está definido na propriedade DisplayName do cartão. |
| InputText.Default | Parent.Default | O controle de entrada de texto mostra inicialmente o valor do campo da fonte de dados, conforme fornecido pelo valor padrão do cartão. |
| TextErrorMessage.Text | Parent.Error | Se ocorrer um problema de validação, a propriedade Error do cartão fornecerá uma mensagem de erro apropriada. |
Observação
A propriedade Parent.Error é uma propriedade somente de saída que você não pode definir usando uma fórmula. Esta propriedade não aparecerá na lista de propriedades próxima ao canto superior esquerdo ou nas guias Propriedades ou Avançado próximas à borda direita. A barra de fórmulas sugere essa propriedade se você estiver escrevendo uma fórmula que faz referência à propriedade.
Para extrair informações desses controles e retorná-las para a fonte de dados, use as seguintes fórmulas principais:
| Nome do controle | Fórmula | Descrição |
|---|---|---|
| DataCard.DataField | "ApproverEmail" | O nome do campo ao qual o usuário pode exibir e editar nesse cartão. |
| DataCard.Update | InputText.Text | O valor a ser validado e retornado para a fonte de dados quando SubmitForm é executado. |