Miklix

Finantsdimensiooni otsinguvälja loomine rakenduses Dynamics 365

Avaldatud: 16. veebruar 2025, kell 11:33:36 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 08:56:07 UTC

See artikkel selgitab, kuidas luua Dynamics 365 for Operationsis finantsdimensiooni otsinguvälja, sh X++ koodi näide.


See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Selle postituse teave põhineb Dynamics 365 for Operationsil, kuid suurem osa sellest töötab ka Dynamics AX 2012-ga (vt allpool).

Hiljuti anti mulle ülesandeks luua uus väli, kus peaks olema võimalik määrata üks finantsdimensioon, antud juhul Toode. Loomulikult peaks uus väli suutma otsida ka selle dimensiooni kehtivaid väärtusi.

See on veidi keerulisem kui tavaline tabeliotsing, aga kui sa tead, kuidas, siis pole see tegelikult nii hull.

Õnneks pakub standardrakendus mugavat otsinguvormi (DimensionLookup), mida saab selleks otstarbeks kasutada, kui lihtsalt öelda, millist dimensiooni atribuuti otsida.

Esmalt tuleb luua vormiväli ise. See võib põhineda tabeliväljal või redigeerimismeetodil, otsingu enda jaoks pole sellel tähtsust, aga ühel või teisel moel peab see kasutama laiendatud andmetüüpi DimensionValue.

Seejärel peate välja jaoks looma OnLookup sündmusekäitleja. Sündmusekäitleja loomiseks paremklõpsake välja OnLookup sündmusel ja valige "Kopeeri sündmusekäitleja meetod". Seejärel saate tühja sündmusekäitleja meetodi klassi kleepida ja seda sealt redigeerida.

Märkus. Suurem osa sellest töötab ka Dynamics AX 2012 puhul, kuid sündmusekäitleja loomise asemel saate vormivälja otsingumeetodi alistada.

Sündmusekäitleja peaks välja nägema umbes selline (asenda vajadusel vormi nimi ja välja nimi):

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

Lisalugemist

Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:


Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Christensen

Autorist

Mikkel Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.