Crie aplicativos com mais rapidez usando o controle Formulário de entidade para adicionar formulários mais elaborados a uma entidade do Common Data Service.

Para obter uma introdução sobre o controle Formulário de entidade, lei esta postagem do blog: Novo controle Formulário de entidade (recurso experimental) para o Common Data Service.

Importante: esteja ciente da natureza experimental do controle Formulário de entidade, conforme descrito na postagem do blog e tenha cuidado ao usar o controle Formulário de entidade em aplicativos de produção, pelo menos por enquanto.

Propriedades-chave

Estas são as principais propriedades de um controle Formulário de entidade.

DataSource – especifica a fonte de dados que contém os registros que você deseja exibir.
Observação: no momento, somente as entidades no Common Data Service podem ser usadas como fontes de dados para o controle Formulário de entidade.

Pattern – especifica o estilo do formulário que você deseja exibir no controle Formulário de entidade. Defina essa propriedade usando a enumeração FormPattern.

  • FormPattern.List – exibe uma lista tabular de registros.
  • FormPattern.CardList – exibe uma lista tabular de registros.
  • FormPattern.Details – exibe um formulário para mostrar ou editar os detalhes de um único registro.
  • FormPattern.None – nenhum estilo foi explicitamente especificado. O padrão é List para aplicativos de tablet e CardList para aplicativos de celular.

Item – especifica o registro na fonte de dados a ser exibido pelo controle Formulário de entidade. Esta propriedade é usada somente quando Pattern está definido como FormPattern.Details.

Selected – obtém o registro que está selecionado no momento.
Exemplo: se o controle Formulário de entidade exibe uma lista de registros de ordens de venda, a propriedade Selected mostrará o registro que está selecionado no momento. Você também pode acessar um campo de um registro. Por exemplo, você pode especificar o valor do campo Account do registro selecionado como Selected.Account.

SelectableFields – especifica quais campos devem ser exibidos como links. Defina o valor dessa propriedade usando esta sintaxe:
{Field1Name : true, Field2Name : true}
Exemplo: se você quiser que os campos SalesOrderId e Account sejam exibidos como links em um formulário, defina a propriedade SelectableFields propriedade desse formulário com este valor:
{SalesOrderId : true, Account : true}

SelectedField – determina qual campo foi clicado ou tocado. Isso se aplica somente aos campos especificados como SelectableFields.
Exemplo: se você definir a propriedade SelectableFields como {SalesOrderId : true, Account : true}, e o usuário clicar ou tocar no campo Account, SelectedField.Account será definido como true.

OnFieldSelect – como um aplicativo responde quando o usuário clica ou toca em um campo. Isso se aplica somente aos campos especificados como SelectableFields.

Mode – determina o modo do formulário. Para alterar o modo, use a função ViewForm, EditForm ou NewForm. Essas funções só funcionarão quando a propriedade Pattern estiver definida como FormPattern.Details. Defina o valor da propriedade Mode com um valor da enumeração FormMode.

  • FormMode.View – permite aos usuários exibir, mas não editar ou adicionar um registro.
  • FormMode.Edit – permite aos usuários editar um registro.
  • FormMode.New – permite aos usuários adicionar um registro.

OnSuccess – como um aplicativo responderá quando uma operação de dados tiver sido bem-sucedida.

OnFailure - como um aplicativo responderá quando uma operação de dados não tiver sido bem-sucedida.

Unsaved – determina se um registro editado por um usuário tem alterações não salvas.

Funções relacionadas

Você pode usar essas funções compartilhadas com o controle Formulário de entidade ou com o controle Editar formulário. Essas funções só poderão ser usadas com o controle Formulário de entidade quando sua propriedade Pattern estiver definida como FormPattern.Details.

ViewForm – define a propriedade Mode de um controle Formulário de entidade como FormMode.View.

EditForm – define a propriedade Mode de um controle Formulário de entidade como FormMode.Edit.

NewForm – define a propriedade Mode de um controle Formulário de entidade como FormMode.New.

SubmitForm – salva as alterações quando um usuário edita um registro em um controle Formulário de entidade.

ResetForm – abandona as alterações não salvas quando um usuário edita um registro em um controle Formulário de entidade.

Agora que você tem uma visão geral das várias propriedades e funções, vamos vê-las em ação.

Observação: se você não tiver acesso a um banco de dados do Common Data Service, crie um antes de começar a seguir estas etapas.

Exibir uma lista de registros

Os próximos cinco procedimentos fornecem um exemplo simples e completo de como usar os controles de Formulário de entidade. Neste procedimento, adicione um formulário que mostre uma lista das ordens de venda.

  1. Crie um aplicativo de tablet em branco.

  2. Renomeie a primeira tela SalesOrderListScreen.

  3. Na guia Inserir, clique ou toque em Formulários e em Formulário de entidade (experimental).

    Um controle Formulário de entidade é adicionado à tela.

  4. Renomeie o controle Formulário de entidade SalesOrderListForm e redimensione-o para que ele ocupe toda a tela.

  5. No painel à direita, clique ou toque no ícone de banco de dados ao lado do texto Nenhuma fonte de dados selecionada e clique ou toque em Adicionar uma fonte de dados.

  6. Na lista de conexões, clique ou toque na conexão do banco de dados.

  7. Na lista de entidades, clique ou toque em Ordem de venda e, em seguida, clique ou toque em Conectar.

    Uma fonte de dados para a entidade Ordem de venda é criada, e a propriedade DataSource de SalesOrderListForm é definida para essa fonte de dados.

    O controle Formulário de entidade mostra uma lista de ordens de venda. Usando o controle Formulário de entidade, você rapidamente exibiu uma lista sem precisar criá-la manualmente.

    Como você não definiu a propriedade Pattern para o controle Formulário de entidade, o padrão List será usado. Além disso, o grupo de campos em DefaultList da entidade Ordem de venda é usado para exibir o formulário de lista. O formulário também é dinâmico e refletirá automaticamente qualquer alteração no grupo de campos.

  8. (Opcional) Exibir o grupo de campos DefaultList da entidade Ordem de venda:

    1. Entre no site do powerapps.com, clique ou toque em Common Data Service, no painel de navegação à esquerda, e clique ou toque em Entidades.
    2. Na lista de entidades, clique ou toque em Ordem de venda, na guia Grupos de campos e no grupo de campos DefaultList.

    Os campos na lista da ordem de venda correspondem aos exibidos aqui.

    No Common Data Service, você pode modificar grupos de campos de entidades personalizadas (mas não de entidades padrão) para mudar os campos exibidos nos formulários correspondentes que o controle Formulário de entidade mostra. E o melhor: quaisquer alterações feitas no grupo de campos serão automaticamente refletidas em todos os aplicativos que usam um controle Formulário de entidade para exibir o formulário correspondente.

Exibir os detalhes de um registro

Vamos adicionar outro controle Formulário de entidade para exibir os detalhes da ordem de venda selecionada na lista que você criou anteriormente.

  1. Redimensione SalesOrderListForm para ocupar uma metade da tela e adicione um segundo controle Formulário de entidade para ocupar a outra metade da tela.

  2. Renomeie o segundo controle Formulário de entidade como SalesOrderDetailsForm e conecte-o à fonte de dados Ordem de vendas que você criou anteriormente.

  3. Defina a propriedade Pattern de SalesOrderDetailsForm como FormPattern.Details.

    SalesOrderDetailsForm usa o grupo de campos DefaultDetails da entidade Ordem de venda para exibir o formulário. Assim como acontece com SalesOrderListForm, você pode mostrar detalhes do registro com rapidez sem precisar criar manualmente um formulário.

  4. Defina a propriedade Item de SalesOrderDetailsForm como SalesOrderListForm.Selected.

    SalesOrderDetailsForm exibirá os detalhes do registro no qual o usuário clicou ou tocou em SalesOrderListForm.

  5. Visualize o aplicativo pressionando F5 e clique ou toque em uma ordem de venda na lista à esquerda.

    Os detalhes do pedido selecionado aparecem no lado direito.

Configurar um campo para navegar para outra tela

Agora, vamos adicionar mais telas ao nosso aplicativo e, em seguida, configurar campos em um controle Formulário de entidade para navegar para outra tela do aplicativo quando o usuário clicar ou tocar em um campo.

  1. Adicione uma segunda tela para o aplicativo e renomeie a tela SalesOrderDetailsScreen.

  2. Recorte a entidade SalesOrderDetailsForm, cole-a em SalesOrderDetailsScreen e redimensione o formulário para ocupar a maior parte da tela, deixando espaço suficiente para um ícone na parte superior.

  3. Adicione um ícone de seta invertida ao lado do canto superior esquerdo de SalesOrderDetailsScreen.

  4. Defina a propriedade OnSelect do ícone de seta para voltar como a função Back.

  5. Em SalesOrderListScreen, redimensione SalesOrderListForm para ocupar toda a tela.

  6. Clique ou toque em SalesOrderListForm para selecioná-la.

  7. No painel direito, em Campos, defina SalesOrderId para navegar até SalesOrderDetailsScreen.

    O controle Formulário de entidade exibe os valores no campo SalesOrderId (a primeira coluna na lista) como links.

  8. Visualize o aplicativo pressionando F5 e clique ou toque em um link na lista de ordens de venda.

    A segunda tela abre e exibe os detalhes da ordem de venda que você especificou.

    Para exibir os detalhes de uma ordem de venda diferente, clique ou toque na seta para voltar para retornar à lista e, em seguida, clique ou toque no link da ordem para exibir as informações que ela contém.

Navegar com uma variável de contexto

A propriedade Item de SalesOrderDetailsForm está definida como SalesOrderListForm.Selected para que SalesOrderDetailsForm mostre os detalhes do registro que o usuário selecionar em SalesOrderListForm. Você também pode obter o contexto do registro selecionado usando a variável de contexto NavigationContext, que é criada automaticamente quando você usa o painel de personalização de formulário para definir um campo para o qual navegar.

  1. Defina a propriedade Item de SalesOrderDetailsForm para NavigationContext.

  2. Visualize o aplicativo pressionando F5 e clique ou toque em um link na lista de ordens de venda.

    O aplicativo abre SalesOrderDetailsScreen e exibe os detalhes da ordem de vendas que você especificou.

Vamos nos aprofundar em como o painel de personalização de formulário configura a navegação e o contexto para nós.

A propriedade SelectableFields em SalesOrderListForm especifica SalesOrderId como um campo selecionável.

Essa configuração foi definida automaticamente quando usamos o painel de personalização de formulário para que o campo SalesOrderId navegasse para SalesOrderDetailsScreen. Portanto, os valores no campo SalesOrderId aparecem como links.

A propriedade OnFieldSelect de SalesOrderListForm está configurada com uma função If, que determina se o usuário clicou ou tocou no campo ID da ordem de venda: SalesOrderListForm.SelectedField.SalesOrderId = true.

Se a função estiver avaliada como verdadeira, SalesOrderDetailsScreen é aberta com a variável de contexto NavigationContext que usamos anteriormente.

Tudo isso foi configurado automaticamente quando usamos o painel de personalização de formulário para que o campo SalesOrderId navegasse para SalesOrderDetailsScreen.

Portanto, quando o usuário clica ou toca em um campo de ID de ordem de venda, a função If é avaliada como verdadeira, e a função Navigate é chamada com o contexto correspondente, abrindo a tela de detalhes.

Observação: quando você usa o painel de personalização de formulário, NavigationContext é inteligentemente determinada para você. Quando o usuário clica ou toca em SalesOrderId, NavigationContext é definida como SalesOrderListForm.Selected, conforme mostrado pela fórmula anterior. Se tivéssemos especificado o campo Account para a navegação, NavigationContext seria definida como SalesOrderListForm.Selected.Account, garantindo que o contexto correto seja transmitido. No entanto, para acessar esse contexto, você precisa conectar um controle Formulário de entidade à entidade Account no Common Data Service.

Editar e salvar um registro

Por fim, veremos como editar e salvar um registro em um controle Formulário de entidade.

  1. Em SalesOrderDetailsScreen, adicione um ícone Editar e, em seguida, defina sua propriedade OnSelect com a seguinte fórmula:
    EditForm(SalesOrderDetailsForm)

  2. Adicione um ícone de marca de seleção ao lado do ícone Editar e defina a propriedade OnSelect do ícone de marca de seleção com a seguinte fórmula:
    SubmitForm(SalesOrderDetailsForm)

  3. Pressione F5 para visualizar o aplicativo, clique ou toque em um link de ID da ordem de venda para exibir os detalhes de uma ordem de venda e clique ou toque no ícone Editar.

    A propriedade Mode do controle Formulário de entidade é definida como FormMode.Edit para que você possa editar o registro.

  4. Atualize Status da ordem para Fatura.

  5. Atualize Vendedor para WRK014.

    Para ajudá-lo a escolher o Vendedor, o controle Formulário de entidade automaticamente renderiza uma pesquisa detalhada avançada. Para gerar e exibir essa pesquisa, o controle usa o grupo de campos DefaultLookup da entidade Worker no Common Data Service. A entidade Worker é usada porque o campo Vendedor é do tipo Worker.

  6. Clique ou toque no ícone de marca de seleção para salvar suas alterações.

Esta etapa conclui este artigo sobre como usar o controle Formulário de entidade em seus aplicativos. Esperamos que as informações fornecidas aqui tenham sido úteis para você começar a usar o controle Formulário de entidade. Estamos ansiosos para ouvir sua opinião sobre o controle Formulário de entidade e como ajudamos você a rapidamente adicionar formulários avançados aos seus aplicativos.