Miklix

Een opzoekveld maken voor een financiële dimensie in Dynamics 365

Gepubliceerd: 16 februari 2025 om 11:33:56 UTC
Laatst bijgewerkt: 12 januari 2026 om 08:56:12 UTC

Dit artikel legt uit hoe u een opzoekveld voor een financiële dimensie in Dynamics 365 for Operations kunt maken, inclusief een voorbeeld van X++-code.


Deze pagina is machinaal uit het Engels vertaald om hem voor zoveel mogelijk mensen toegankelijk te maken. Helaas is machinevertaling nog geen geperfectioneerde technologie, dus er kunnen fouten optreden. Als je dat liever hebt, kun je hier de originele Engelse versie bekijken:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

De informatie in dit bericht is gebaseerd op Dynamics 365 for Operations, maar het meeste ervan is ook van toepassing op Dynamics AX 2012 (zie hieronder).

Onlangs kreeg ik de opdracht om een nieuw veld te creëren waarin één financiële dimensie, in dit geval Product, kan worden gespecificeerd. Uiteraard moet het nieuwe veld ook de geldige waarden van deze dimensie kunnen opzoeken.

Dit is iets ingewikkelder dan een gewone opzoekactie in een tabel, maar als je weet hoe het moet, valt het reuze mee.

Gelukkig biedt de standaardtoepassing een handig opzoekformulier (DimensionLookup) dat hiervoor gebruikt kan worden, als u maar aangeeft naar welk dimensiekenmerk gezocht moet worden.

Allereerst moet je het formulierveld zelf aanmaken. Dit kan gebaseerd zijn op een tabelveld of een bewerkingsmethode; dat maakt voor de opzoekfunctie zelf niet uit, maar het moet in ieder geval gebruikmaken van het uitgebreide gegevenstype DimensionValue.

Vervolgens moet u een OnLookup-gebeurtenisafhandelaar voor het veld maken. Om een gebeurtenisafhandelaar te maken, klikt u met de rechtermuisknop op de OnLookup-gebeurtenis voor het veld en kiest u 'Gebeurtenisafhandelaarmethode kopiëren'. U kunt vervolgens een lege gebeurtenisafhandelaarmethode in een klasse plakken en deze daar bewerken.

Opmerking: Het meeste hiervan werkt ook voor Dynamics AX 2012, maar in plaats van een gebeurtenisafhandelaar te maken, kunt u de opzoekmethode van het formulierveld overschrijven.

De gebeurtenishandler moet er ongeveer zo uitzien (vervang de formuliernaam en veldnaam indien nodig):

[
    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);
}

Verder lezen

Als je dit bericht leuk vond, vind je deze suggesties misschien ook interessant:


Delen op BlueskyDelen op FacebookDelen op LinkedInDelen op TumblrDelen op XDelen op LinkedInPin op Pinterest

Mikkel Christensen

Over de auteur

Mikkel Christensen
Mikkel is de bedenker en eigenaar van miklix.com. Hij heeft meer dan 20 jaar ervaring als professioneel computerprogrammeur/softwareontwikkelaar en werkt momenteel fulltime voor een groot Europees IT-bedrijf. Als hij niet blogt, besteedt hij zijn vrije tijd aan een breed scala aan interesses, hobby's en activiteiten, die tot op zekere hoogte weerspiegeld kunnen worden in de verscheidenheid aan onderwerpen op deze website.