Miklix

Créer un champ de recherche pour une dimension financière dans Dynamics 365

Publié : 16 février 2025 à 11 h 39 min 42 s UTC
Dernière mise à jour : 12 janvier 2026 à 08 h 56 min 58 s UTC

Cet article explique comment créer un champ de recherche pour une dimension financière dans Dynamics 365 for Operations, incluant un exemple 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 :

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Les informations contenues dans ce billet sont basées sur Dynamics 365 for Operations, mais la plupart fonctionneront aussi pour Dynamics AX 2012 (voir ci-dessous).

On m’a récemment demandé de créer un nouveau champ où il devrait être possible de spécifier une seule dimension financière, dans ce cas le Produit. Bien sûr, le nouveau champ devrait aussi pouvoir consulter les valeurs valides de cette dimension.

C’est un peu plus compliqué qu’une simple consultation dans un tableau, mais si vous savez comment faire, ce n’est en fait pas si difficile.

Heureusement, l’application standard offre un formulaire de recherche pratique (DimensionLookup) qui peut être utilisé à cette fin, si vous lui indiquez simplement quel attribut de dimension rechercher.

D’abord, vous devez créer le champ de formulaire lui-même. Cela peut être basé sur un champ de tableau ou une méthode d’édition, peu importe pour la recherche elle-même, mais d’une manière ou d’une autre, il faut utiliser le type de données étendu DimensionValue.

Vous devez ensuite créer un gestionnaire d’événements OnLookup pour le champ. Pour créer un gestionnaire d’événements, faites un clic droit sur l’événement OnLookup pour le champ, puis choisissez « Copier la méthode du gestionnaire d’événement ». Vous pouvez ensuite coller une méthode de gestionnaire d’événements vide dans une classe et la modifier à partir de là.

Avis : La plupart de ces éléments fonctionneront aussi pour Dynamics AX 2012, mais au lieu de créer un gestionnaire d’événements, vous pouvez écraser la méthode de recherche du champ de formulaire.

Le gestionnaire d’événements doit ressembler à ceci (remplacer le nom du formulaire et le nom du champ au besoin) :

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}

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.