Miklix

Adicionar método de visualização ou edição através de extensão no Dynamics 365

Publicado: 16 de fevereiro de 2025 às 11:56:00 UTC
Última atualização: 12 de janeiro de 2026 às 08:57:26 UTC

Neste artigo, explico como usar uma extensão de classe para adicionar um método de visualização a uma tabela e um formulário no Dynamics 365 for Operations, incluindo exemplos de código X++.


Esta página foi traduzida automaticamente do inglês para a tornar acessível ao maior número possível de pessoas. Infelizmente, a tradução automática ainda não é uma tecnologia aperfeiçoada, pelo que podem ocorrer erros. Se preferir, pode ver a versão original em inglês aqui:

Add Display or Edit Method via Extension in Dynamics 365

Embora planear usar métodos de visualização ou edição no Dynamics seja algo que deva levá-lo a considerar se poderia desenhar a sua solução de outra forma, por vezes são a melhor opção.

Em versões anteriores do Dynamics e do Axapta, era muito fácil criar métodos de visualização ou edição em tabelas e formulários, mas quando recentemente tive de fazer o meu primeiro método de edição no Dynamics 365, descobri que o procedimento para o fazer é um pouco diferente.

Há evidentemente várias abordagens válidas, mas a que considero melhor (tanto em termos de intuitividade como de beleza no código) é usar uma extensão de classe. Sim, podes usar extensões de classes para adicionar métodos a outros tipos de elementos que não classes – neste caso, uma tabela, mas também funciona para formulários.

Primeiro, cria uma nova turma. Podes dar-lhe o nome que quiseres, mas por alguma razão tem de ter o sufixo "_Extension". Digamos que precisa de adicionar um método de visualização ao CustTable, pode, por exemplo, nomeá-lo MyCustTable_Extension.

A classe tem de ser decorada com ExtensionOf para que o sistema saiba o que estás a expandir, assim:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

Agora podes simplesmente implementar o teu método de visualização nesta classe, como farias diretamente na tabela nas versões anteriores do Dynamics – "isto" até faz referência à tabela, por isso podes aceder a campos e outros métodos.

Por exemplo, uma classe com um método de exibição simples (e completamente inútil) que apenas devolve o número de conta do cliente pode ser assim:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

Agora, para adicionar o método de visualização a um formulário (ou extensão de formulário, se não puder editar o formulário diretamente), precisa de adicionar manualmente um campo ao formulário e garantir que usa o tipo correto (string neste exemplo).

Depois, no controlo, colocas DataSource como CustTable (ou seja qual for o nome da tua fonte de dados CustTable) e DataMethod como MyCustTable_Extension.displayAccountNum (certifica-te de incluir o nome da classe, caso contrário o compilador não consegue encontrar o método).

E acabou :-)

Atualização: Já não é necessário incluir o nome da classe de extensão ao adicionar o método de visualização a um formulário, mas na altura original da publicação, era. Deixo a informação aqui caso alguns leitores ainda estejam a usar versões mais antigas.

Leitura adicional

Se gostou deste post, também pode gostar destas sugestões:


Partilhar no BlueskyPartilhar no FacebookPartilhar no LinkedInPartilhar no TumblrPartilhar em XPartilhar no LinkedInFixar no Pinterest

Mikkel Christensen

Sobre o autor

Mikkel Christensen
Mikkel é o criador e proprietário do miklix.com. Tem mais de 20 anos de experiência como programador informático/desenvolvedor de software profissional e trabalha atualmente a tempo inteiro para uma grande empresa europeia de TI. Quando não está a escrever no blogue, dedica o seu tempo livre a um vasto leque de interesses, passatempos e actividades, que podem, em certa medida, refletir-se na variedade de tópicos abordados neste sítio Web.