Miklix

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

Publié : 16 février 2025 à 12 h 00 min 25 s UTC
Dernière mise à jour : 12 janvier 2026 à 08 h 57 min 58 s 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, y compris des exemples de code X++.


Cette page a été automatiquement traduite de l'anglais afin de la rendre accessible au plus grand nombre. Malheureusement, la traduction automatique n'est pas encore une technologie au point, des erreurs peuvent donc survenir. 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 planifier d’utiliser des méthodes d’affichage ou d’édition dans Dynamics soit généralement quelque chose qui devrait vous faire réfléchir à la possibilité de concevoir votre solution différemment, parfois elles sont la meilleure option.

Dans les versions précédentes de Dynamics et Axapta, il était très facile de créer des méthodes d’affichage ou d’édition sur des tableaux et des formulaires, mais lorsque j’ai récemment dû faire ma première méthode d’édition dans Dynamics 365, j’ai découvert que la procédure pour y parvenir était un peu différente.

Il y a manifestement plusieurs approches valides, mais celle que je trouve la meilleure (tant en termes d’intuitivité que de qualité de code) est d’utiliser une extension de classe. Oui, vous pouvez utiliser des extensions de classes pour ajouter des méthodes à d’autres types d’éléments que des classes — dans ce cas, une table, mais ça fonctionne aussi pour les formulaires.

D’abord, créez une nouvelle classe. Vous pouvez l’appeler comme vous voulez, mais pour une raison quelconque, il doit être suffixé « _Extension ». Disons que vous devez ajouter une méthode d’affichage à CustTable, vous pourriez par exemple la nommer MyCustTable_Extension.

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

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

Maintenant, tu peux simplement implémenter ta méthode d’affichage dans cette classe, comme tu l’aurais fait directement sur la table dans les versions précédentes de Dynamics – « this » fait même référence à la table, donc tu peux accéder aux champs et autres méthodes.

Par exemple, une classe avec une méthode d’affichage simple (et complètement inutile) qui retourne 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;
    }
}

Maintenant, 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 un champ manuellement au formulaire et vous assurer d’utiliser le bon type (chaîne dans cet exemple).

Ensuite, sur la commande, vous définiriez DataSource sur CustTable (ou peu importe 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 trouvera pas la méthode).

Et c’est fini :-)

Mise à jour : Il n’est plus nécessaire d’inclure le nom de la classe d’extension lors de l’ajout de la méthode d’affichage à un formulaire, mais au moment original de la publication, c’était le cas. Je laisse l’information ici au cas où certains lecteurs utiliseraient encore des versions plus anciennes.

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

À propos de l'auteur

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