Dynamics do Zero ao PRO · Lição 27 de 48 · Módulo 4

LIÇÃO 27Formulários de Edição com Edit Form

Construir campos manualmente com Patch() funciona para formulários simples. Quando você precisa de um formulário completo com 10, 15 campos — o Edit Form gera tudo automaticamente a partir da tabela do Dataverse. Configure uma vez, edite e crie registros com SubmitForm().

🎯

Resultado desta lição

Ao final, você terá uma tela de edição completa usando o componente Edit Form — com todos os campos do caso gerados automaticamente, validação nativa e salvamento via SubmitForm() com uma linha de código.

New, Edit e View — um componente, três comportamentos

Modo 1

New

Campos em branco para criar novo registro com Defaults()

Modo 2

Edit

Campos preenchidos com dados do registro atual para edição

Modo 3

View

Campos somente leitura — exibe dados sem permitir edição

Alterar o modo em tempo real: Você pode mudar o modo do Edit Form dinamicamente via fórmula. Por exemplo, um botão "Editar" que muda FormMode.View para FormMode.Edit com EditForm(frmCaso) — e um botão "Cancelar" que restaura com ViewForm(frmCaso). Um só componente cobre os três estados.

Passo a passo

  1. Adicione o componente Edit Form na tela de detalhe

    → Na DetalheScreen → Insert → Edit form
    → Redimensione para ocupar a área de conteúdo da tela
    → Renomeie para: frmCaso

    Com o formulário selecionado, configure no painel direito:

    Data source: Cases
    Item: SelectedCase (o registro passado na navegação)
    Default mode: View
  2. Selecione os campos a exibir

    → Com frmCaso selecionado → Edit fields no painel direito
    → Clique em + Add field

    Selecione os campos:

    ✓ Title (Título)
    ✓ Customer (Cliente)
    ✓ Priority (Prioridade)
    ✓ Origin (Origem)
    ✓ Description (Descrição)
    ✓ Case Status (Status)
    ✓ Created On (Criado em)

    O Edit Form gera automaticamente o tipo correto de input para cada campo — text input para texto, dropdown para choice, date picker para data, lookup para campos de relacionamento.

    Campo Customer como Lookup: O campo Customer do Case é um lookup polimórfico (aceita Contact ou Account). O Edit Form renderiza automaticamente um campo de busca para ele — mas pode exigir configuração adicional para filtrar apenas Contacts ou apenas Accounts dependendo do seu cenário.
  3. Adicione botões de ação

    Abaixo do formulário, adicione três botões:

    Botão "Editar":
    Visible: frmCaso.Mode = FormMode.View
    OnSelect: EditForm(frmCaso)

    Botão "Salvar":
    Visible: frmCaso.Mode = FormMode.Edit
    OnSelect: SubmitForm(frmCaso)

    Botão "Cancelar":
    Visible: frmCaso.Mode = FormMode.Edit
    OnSelect: ResetForm(frmCaso); ViewForm(frmCaso)

    Os botões Salvar e Cancelar aparecem só no modo de edição. O botão Editar aparece só no modo de visualização. O Power Fx controla a visibilidade dinamicamente.

  4. Configure os eventos OnSuccess e OnFailure

    O Edit Form tem propriedades para quando o SubmitForm() tem sucesso ou falha:

    frmCaso.OnSuccess:
    Notify("Caso atualizado com sucesso!", NotificationType.Success); Back()

    frmCaso.OnFailure:
    Notify("Erro ao salvar: " & frmCaso.Error, NotificationType.Error)
    OnSuccess vs. OnFailure: São propriedades do Edit Form que disparam automaticamente após o SubmitForm(). Você não precisa verificar erros manualmente como no Patch() — o formulário já sabe se a operação foi bem-sucedida ou não e executa o bloco correspondente.
  5. Use o Edit Form também para criar novos casos

    O mesmo formulário pode criar e editar — basta mudar o modo e o Item:

    Para criar:
    NewForm(frmCaso) — limpa o formulário e muda para modo New
    O Item não precisa ser definido — o Defaults(Cases) é usado automaticamente

    Para editar registro existente:
    EditForm(frmCaso) — mantém o Item atual e muda para modo Edit

    Com esse padrão, um único formulário faz criar, editar e visualizar — reduzindo o número de telas do app pela metade.

  6. Personalize os campos individualmente dentro do formulário

    Cada card de campo dentro do Edit Form pode ser customizado. Clique em um campo específico para editar suas propriedades:

    Reordenar campos: Arraste os cards no painel "Edit fields"
    Renomear label: Clique no label dentro do card → edite o Text
    Tornar obrigatório: Propriedade Required do DataCard: true
    Valor padrão: DataCardValue.Default: "Valor padrão aqui"
    DataCard e DataCardValue: Dentro do Edit Form, cada campo é composto de um DataCard (container) e um DataCardValue (o input real). Para personalizar o comportamento de um campo, sempre edite as propriedades do DataCardValue — não do DataCard.

Checklist

Edit Form vs. campos manuais — quando usar cada abordagem

Use Edit Form quando: Você precisa de um formulário CRUD completo com muitos campos, validação nativa, e os campos seguem o padrão do Dataverse sem customizações visuais complexas. Velocidade de desenvolvimento muito maior.

Use Patch() com campos manuais quando: Você precisa de controle visual total sobre cada campo, lógica condicional entre campos (um campo muda dependendo do valor de outro), ou quando está integrando dados de múltiplas fontes no mesmo formulário.
Foto de Pablo Maruk
Pablo Maruk
Analista Funcional de Dynamics · 16 anos de TI · EUA & Europa