Miklix

Ajouter une méthode d'affichage ou de modification via une extension dans Dynamics 365

Publié : 16 février 2025 à 11:55:32 UTC
Dernière mise à jour : 12 janvier 2026 à 08:57:19 UTC

Dans cet article, j'explique comment utiliser une extension de classe pour ajouter une méthode d'affichage à un tableau et à un formulaire dans Dynamics 365 for Operations, avec des exemples de code X++.


Cette page a été traduite de l'anglais afin de la rendre accessible au plus grand nombre. Malheureusement, la traduction automatique n'est pas encore une technologie parfaite, et des erreurs peuvent donc se produire. Si vous préférez, vous pouvez consulter la version originale en anglais ici :

Add Display or Edit Method via Extension in Dynamics 365

Bien que la planification de l'utilisation des méthodes d'affichage ou d'édition dans Dynamics doive généralement vous amener à vous demander si vous ne pourriez pas concevoir votre solution d'une autre manière, il arrive que ce soit la meilleure solution.

Dans les versions précédentes de Dynamics et d'Axapta, il était très facile de créer des méthodes d'affichage ou de modification sur les tables et les formulaires, mais lorsque j'ai récemment dû créer ma première méthode de modification dans Dynamics 365, j'ai découvert que la procédure à suivre est quelque peu différente.

Il existe manifestement plusieurs approches valables, mais celle que je trouve la plus efficace (tant en termes d'intuitivité que de clarté du code) consiste à utiliser une extension de classe. Certes, on peut utiliser les extensions de classe pour ajouter des méthodes à d'autres types d'éléments que les classes – ici, un tableau –, mais cela fonctionne également pour les formulaires.

Commencez par créer une nouvelle classe. Vous pouvez la nommer comme vous le souhaitez, mais elle doit obligatoirement se terminer par « _Extension ». Par exemple, si vous devez ajouter une méthode d'affichage à la classe CustTable, vous pourriez la nommer MyCustTable_Extension.

La classe doit être décorée avec ExtensionOf pour indiquer au système ce que vous étendez, comme ceci :

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

Vous pouvez maintenant implémenter votre méthode d'affichage dans cette classe, comme vous l'auriez fait directement sur la table dans les versions précédentes de Dynamics ; « this » fait même référence à la table, vous pouvez donc accéder aux champs et autres méthodes.

Par exemple, une classe dotée d'une méthode d'affichage simple (et totalement inutile) qui renvoie simplement le numéro de compte du client pourrait ressembler à ceci :

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

        return this.AccountNum;
    }
}

Pour ajouter la méthode d'affichage à un formulaire (ou à une extension de formulaire, si vous ne pouvez pas modifier le formulaire directement), vous devez ajouter manuellement un champ au formulaire et veiller à utiliser le type correct (chaîne de caractères dans cet exemple).

Ensuite, dans le contrôle, vous définirez DataSource sur CustTable (ou quel que soit le nom de votre source de données CustTable) et DataMethod sur MyCustTable_Extension.displayAccountNum (assurez-vous d'inclure le nom de la classe, sinon le compilateur ne pourra pas trouver la méthode).

Et voilà ! :-)

Mise à jour : Il n’est plus nécessaire d’indiquer le nom de la classe d’extension lors de l’ajout de la méthode d’affichage à un formulaire, contrairement à la version originale. Je laisse cette information au cas où certains utilisateurs utiliseraient encore d’anciennes versions.

Lectures complémentaires

Si vous avez apprécié cet article, vous aimerez peut-être aussi ces suggestions :


Partager sur BlueskyPartager sur FacebookPartager sur LinkedInPartager sur TumblrPartager sur XPartager sur LinkedInÉpingler sur Pinterest

Mikkel Christensen

A propos de l'auteur

Mikkel Christensen
Mikkel est le créateur et le propriétaire de miklix.com. Il a plus de 20 ans d'expérience en tant que programmeur informatique professionnel/développeur de logiciels et travaille actuellement à plein temps pour une grande entreprise européenne de TI. Lorsqu'il ne blogue pas, il consacre son temps libre à un large éventail d'intérêts, de passe-temps et d'activités, ce qui peut se refléter dans une certaine mesure dans la variété des sujets abordés sur ce site web.