Créer un champ de recherche pour une dimension financière dans Dynamics 365
Publié : 16 février 2025 à 11:33:42 UTC
Dernière mise à jour : 12 janvier 2026 à 08:56:08 UTC
Cet article explique comment créer un champ de recherche pour une dimension financière dans Dynamics 365 for Operations, et inclut un exemple de code X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Les informations contenues dans cet article sont basées sur Dynamics 365 for Operations, mais la plupart d'entre elles fonctionneront également pour Dynamics AX 2012 (voir ci-dessous).
J'ai récemment été chargé de créer un nouveau champ permettant de spécifier une dimension financière unique, en l'occurrence le Produit. Ce champ doit également permettre de consulter les valeurs valides de cette dimension.
C'est un peu plus compliqué qu'une simple recherche dans un tableau, mais si vous savez comment faire, ce n'est pas si difficile.
Heureusement, l'application standard fournit un formulaire de recherche pratique (DimensionLookup) qui peut être utilisé à cette fin, si vous lui indiquez simplement quel attribut de dimension rechercher.
Il faut d'abord créer le champ de formulaire. Celui-ci peut être basé sur un champ de table ou une méthode d'édition ; cela n'a pas d'importance pour la recherche elle-même, mais il doit impérativement utiliser le type de données étendu DimensionValue.
Vous devez ensuite créer un gestionnaire d'événements OnLookup pour le champ. Pour ce faire, cliquez avec le bouton droit sur l'événement OnLookup du champ, puis choisissez « Copier la méthode du gestionnaire d'événements ». Vous pouvez ensuite coller une méthode de gestionnaire d'événements vide dans une classe et la modifier.
Remarque : La plupart de ces informations fonctionneront également pour Dynamics AX 2012, mais au lieu de créer un gestionnaire d’événements, vous pouvez remplacer la méthode de recherche du champ de formulaire.
Le gestionnaire d'événements doit ressembler à ceci (remplacez le nom du formulaire et le nom du champ si nécessaire) :
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 :
- Ajouter une méthode d'affichage ou de modification via une extension dans Dynamics 365
- Mettre la machine virtuelle Dynamics 365 FO Dev ou Test en mode maintenance
- Visual Studio se bloque au démarrage lors du chargement des projets récents
