Miklix

Finantsdimensiooni otsinguvälja loomine rakenduses Dynamics 365

Avaldatud: 16. veebruar 2025, kell 11:33:36 UTC

Selles artiklis selgitatakse, kuidas luua rakenduses Dynamics 365 for Operations finantsdimensiooni otsinguvälja, sealhulgas 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

Selles postituses olev teave põhineb Dynamics 365 for Operationsil, kuid suurem osa sellest töötab ka Dynamics AX 2012 jaoks (vt allpool).

Sain hiljuti ülesandeks luua uus valdkond, milles peaks olema võimalik määrata üksainus finantsdimensioon, antud juhul Toode. Muidugi peaks uus väli suutma otsida ka selle dimensiooni kehtivaid väärtusi.

See on natuke keerulisem kui tavaline tabelist otsimine, kuid kui tead, kuidas, pole see tegelikult väga halb.

Õnneks pakub standardrakendus mugavat otsinguvormi (DimensionLookup), mida saab sel eesmärgil kasutada, kui lihtsalt öelda, millist dimensiooniatribuuti otsida.

Esiteks peate looma vormivälja enda. See võib põhineda tabeliväljal või redigeerimismeetodil, see pole otsingu enda jaoks oluline, kuid ühel või teisel viisil peab see kasutama laiendatud andmetüüpi DimensionValue.

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

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

Sündmuste töötleja peab välja nägema umbes selline (vajadusel asendage 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);
}
Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Bang Christensen

Autorist

Mikkel Bang 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.