Edite os registros relacionados da tabela diretamente do formulário principal de outra tabela
Existem várias maneiras de trabalhar com registros de tabela relacionados em um formulário de tabela no Power Apps. Por exemplo, você pode incluir tabelas relacionadas no modo somente leitura com um formulário de visualização rápida e criar ou editar um registro usando um formulário principal em uma caixa de diálogo.
Outra maneira de trabalhar com registros de tabelas relacionadas é adicionar um controle de componente de formulário ao formulário principal de outra tabela. O controle de componente de formulário permite que os usuários editem informações de um registro de tabela relacionado diretamente de outro formulário de tabela.
Por exemplo, este é o componente de formulário em uma guia separada no formulário de conta principal, que permite ao usuário editar um registro de contato sem sair do formulário de conta.
Por exemplo, Here é o componente de formulário em uma guia existente no formulário da conta principal, que também permite que o usuário edite um registro de contato sem sair da guia Resumo do formulário da conta.
Adicionar o componente de formulário a um formulário principal da tabela
- No painel de navegação esquerdo, selecione Componentes. Se o item não estiver no painel lateral, Select …Mais e então Select o item desejado.
- Expanda Entrada ou Exibição e depois Select Formulário.
Na página de configuração do controle do componente de formulário, Select as propriedades do controle:
- Select a coluna de pesquisa para o formulário.
- Select o Formulário relacionado. Dependendo da configuração da tabela relacionada à coluna:
- Se a coluna estiver conectada a uma única tabela (como a coluna Criado por), Select o Formulário relacionado a ser usado.
- Se a coluna estiver conectada a várias tabelas (polimórficas, como a coluna do proprietário), Select + Formulário relacionado e então Select Adicionar para adicionar o formulário relacionado. Continue para Select + Formulário relacionado>Adicionar para adicionar um formulário relacionado para cada tabela relacionada.
- Por padrão, todos os tipos de aplicativos cliente Web, Telefone e Tablet estão habilitados para exibir o formulário. Limpe os tipos de cliente em que não deseja que o formulário seja exibido.
- Escolha Concluído.
- Salve e depois Publique o formulário.
Adicione o componente de formulário usando a experiência clássica
Neste exemplo, o formulário principal padrão Contato é configurado para o controle de componente de formulário que é adicionado ao formulário principal da conta.
Importante
A maneira como você adiciona um controle de componente de formulário foi alterada. Recomendamos usar a experiência mais recente. Mais informações: Adicione o componente de formulário a um formulário principal de tabela
Entre no Power Apps.
Select Tabelas no painel esquerdo. Como alternativa, abra uma solução e, em seguida, Select uma tabela, como Conta. Se o item não estiver no painel lateral, Select …Mais e então Select o item desejado.
Select Formulários no menu de componentes.
Select um formulário com um tipo de formulário de Principal entre os formulários disponíveis.
Selecione Alternar para clássico. A interface clássica do editor de formulários é aberta como uma guia em seu navegador.
Select a aba Inserir . Em seguida, crie uma nova aba e adicione uma nova seção ou adicione uma nova seção a uma aba existente.
Na nova seção, adicione uma coluna de pesquisa, como a coluna de pesquisa Contato principal .
Select na coluna de pesquisa e, em seguida, na guia Página inicial , Select Alterar propriedades.
Na guia Controles , Select Adicionar controle, na lista de tipos de controle Select Controle de componente de formulário e, em seguida, Select Adicionar.
Select Web, Tablet e Telefone para o componente.
Select Editar (ícone de lápis) e na caixa de diálogo Configurar propriedade Select Vincular a um valor estático e então adicionar uma entrada XML similar a esta onde TableName é o nome exclusivo da tabela e FormID é o ID do formulário principal:
<QuickForms><QuickFormIds><QuickFormId entityname="TableName">FormID</QuickFormId></QuickFormIds></QuickForms>
- Por exemplo, para renderizar o formulário principal Contato no formulário da conta, use:
<QuickForms><QuickFormIds><QuickFormId entityname="contact">1fed44d1-ae68-4a41-bd2b-f13acac4acfa</QuickFormId></QuickFormIds></QuickForms>
- Por exemplo, para renderizar o formulário principal Contato no formulário da conta, use:
Select OK e depois Select OK novamente.
Salve e depois Publique seu formulário.
Dica
Para encontrar o nome exclusivo de uma tabela, Select a tabela em Power Apps e depois Select Configurações. O Nome aparece no painel Editar da tabela. O ID do formulário pode ser encontrado no URL do navegador quando você edita um formulário. O ID segue a parte /edit/ da URL.
No clássico designer de formulários, o ID do formulário segue a parte formId%3d do URL.
Comportamento do componente de formulário
Esta seção descreve o comportamento do componente de formulário quando usado em um aplicativo baseado em modelos.
Seleção de registros
Para que o controle de componente de formulário mostre um formulário, a coluna de pesquisa à qual ele está vinculado deve ter um valor. Caso contrário, o controle mostrará a mensagem Registro de origem não selecionado. Uma maneira de definir o valor é adicionar ao formulário um controle de pesquisa que esteja vinculado à mesma coluna de pesquisa do controle de componente de formulário. Quando você usa o controle de pesquisa para alterar o valor da coluna de pesquisa, o controle de componente de formulário mostra um formulário com os dados para o novo valor da coluna de pesquisa.
Validação de coluna
Todas as colunas, tanto no formulário principal quanto nos controles de componentes do formulário, devem ser válidas para que os dados sejam enviados para o Microsoft Dataverse. Isso é verdadeiro para erros de validação de coluna, colunas obrigatórias ausentes e assim por diante.
OnSave
Os manipuladores são executados para o formulário principal e seus controles de componentes de formulário. Qualquer manipulador pode cancelar o salvamento do formulário principal e dos controles do componente do formulário usando preventDefault. Isso significa que nenhuma operação de salvamento pode solicitar preventDefault
que os dados sejam enviados para Dataverse. A ordem em que os manipuladores são chamados não está definida. OnSave
Mais informações: Form OnSave Event (referência da API do cliente) em aplicativos orientados a modelos
Salvar registro
Quando o estágio de validação é aprovado, os dados são enviados para o Dataverse para cada registro. Atualmente, cada registro é atualizado de forma independente com diferentes solicitações. Os salvamentos não são transacionais e a ordem dos salvamentos não está definida. Um erro ao salvar um componente do formulário não reverterá as alterações no formulário principal ou em outros componentes de formulário. Após a conclusão de cada salvamento, os dados são atualizados para todos os registros no formulário.
Notificações
As notificações no componente de formulário são agregadas às notificações do formulário principal. Por exemplo, se houver colunas inválidas no componente de formulário e você tentar salvar, a notificação da coluna inválida aparecerá na parte superior do formulário principal, e não no componente de formulário.
Tratamento de erros
Se houver vários erros durante o salvamento, apenas um erro será mostrado ao usuário. Se o usuário puder fazer alterações para corrigir o primeiro erro e salvar, o próximo erro ficará visível. O usuário precisará continuar salvando até que todos os erros sejam resolvidos.
Alteração de registros com alterações não salvas
Se houver alterações não salvas em um formulário para um componente de formulário e um usuário tentar alterar a coluna de pesquisa à qual o componente de formulário está vinculado, o usuário será alertado sobre essa alteração.
API de cliente
Um contexto de formulário está disponível para o controle do componente de formulário. Ele pode ser acessado por meio do contexto do formulário principal acessando o controle por meio de uma API, como getControl. Antes de acessar dados da tabela relacionada no controle do componente de formulário, os manipuladores de eventos devem aguardar que a API isLoaded para o controle retorne verdadeiro.
Limitações
Observe as seguintes limitações ao adicionar o controle de componente de formulário a um formulário de tabela:
O controle de componente de formulário permite apenas a renderização de formulários principais. Da mesma forma, o suporte para adicionar um controle de componente de formulário só é compatível com os formulários principais. Outros tipos de formulário, como o de criação rápida, visualização rápida e cartão não são compatíveis.
Formulários com um fluxo do processo empresarial atualmente não têm suporte no formulário de tabela principal ou no formulário de tabela relacionado. Se você tiver um formulário com um fluxo do processo empresarial, poderá haver um comportamento inesperado. Recomendamos que você não use um componente de formulário com um formulário que use um fluxo do processo empresarial.
O controle de componente de formulário não é compatível com controles de componente de formulário incorporados, como adicionar um controle de componente de formulário a um formulário que é usado por um controle de componente de formulário.
O controle do componente de formulário não oferece suporte a aplicativos de tela incorporados. Você pode encontrar um comportamento inesperado com esses aplicativos de tela.
O controle de componente de formulário só exibirá a primeira guia do formulário que ele usa se várias guias estiverem incluídas nesse formulário.
Não há suporte para o uso do mesmo formulário para diferentes controles de componentes de formulário.
O formulário que você usa com um componente de formulário deve ser incluído no seu aplicativo. Se não for, ou se o usuário atual não tiver acesso ao formulário, ele retornará ao formulário principal superior incluído no aplicativo e disponível para o usuário (com base na ordem do formulário).
Todos os componentes usados pelo formulário em um componente de formulário devem ser incluídos no seu aplicativo. Entre esses componentes estão tabelas, exibições e fluxos de processo empresarial relacionados. Se não estiverem, eles não estarão disponíveis no formulário ou talvez haja um comportamento inesperado.
Os controles de componente do formulário têm determinadas limitações quando renderizados em aplicativos multissessão. Especificamente, manipuladores adicionados dinamicamente no componente de formulário, como
addOnSave
ouaddOnChange
, podem não ser executados após alternar entre guias de multissessão.Convém notar que o mural da linha do tempo não é atualizado quando uma coluna é usada para definir o mural da linha do tempo tiver sido alterada no componente de formulário. Quando a página for atualizada, a parede da linha do tempo será atualizada conforme o esperado.
No celular, o controle da linha do tempo não aparece no controle de componente do formulário no momento.
Para subgrades, os botões de comando Ver todos os registros e Ver registros associados não estarão disponíveis se forem renderizados dentro de um componente de formulário.
Não há suporte aos controles de componente de formulário nas caixas de diálogo de edição em massa. Eles não aparecerão no formulário na caixa de diálogo de edição em massa por padrão e quaisquer alterações feitas nos registros de tabela relacionados a eles não serão salvas.
Quando registros duplicados são detectados quando um controle de componente de formulário é salvo, os usuários podem não conseguir visualizar as duplicatas para resolver conflitos.
Ver também
Use controles personalizados para visualizações de dados de aplicativos orientadas a modelos