Miklix

Finansinio aspekto paieškos lauko sukūrimas sistemoje „Dynamics 365“.

Paskelbta: 2025 m. vasario 16 d. 11:33:51 UTC

Šiame straipsnyje paaiškinama, kaip sukurti finansinės dimensijos paieškos lauką „Dynamics 365 for Operations“, įskaitant X++ kodo pavyzdį.


Šis puslapis buvo mašininiu būdu išverstas iš anglų kalbos, kad juo galėtų naudotis kuo daugiau žmonių. Deja, mašininis vertimas dar nėra tobula technologija, todėl gali pasitaikyti klaidų. Jei pageidaujate, originalią versiją anglų kalba galite peržiūrėti čia:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Šiame įraše pateikta informacija yra pagrįsta „Dynamics 365 for Operations“, tačiau didžioji jos dalis veiks ir „Dynamics AX 2012“ (žr. toliau).

Neseniai man buvo pavesta sukurti naują lauką, kuriame turėtų būti įmanoma nurodyti vieną finansinį aspektą, šiuo atveju Produktą. Žinoma, naujame lauke taip pat turėtų būti galima ieškoti galiojančių šio aspekto verčių.

Tai yra šiek tiek sudėtingesnė nei įprasta paieška lentelėje, bet jei žinote, kaip tai padaryti, tai iš tikrųjų nėra labai blogai.

Laimei, standartinėje programoje yra patogi paieškos forma (DimensionLookup), kurią galima naudoti tam tikslui, jei tik nurodysite, kurį matmens atributą ieškoti.

Pirmiausia turite sukurti patį formos lauką. Tai gali būti pagrįsta lentelės lauku arba redagavimo metodu, nesvarbu pačiai paieškai, bet vienaip ar kitaip ji turi naudoti išplėstinį duomenų tipą DimensionValue.

Tada turite sukurti lauko OnLookup įvykių tvarkyklę. Norėdami sukurti įvykių tvarkyklę, dešiniuoju pelės mygtuku spustelėkite lauko OnLookup įvykį, tada pasirinkite „Kopijuoti įvykių tvarkyklės metodą“. Tada galite įklijuoti tuščią įvykių tvarkyklės metodą į klasę ir iš ten jį redaguoti.

Pastaba: didžioji dalis to veiks ir Dynamics AX 2012, tačiau užuot sukūrę įvykių tvarkyklę, galite nepaisyti formos lauko paieškos metodo.

Įvykių tvarkyklė turi atrodyti maždaug taip (jei reikia, pakeiskite formos pavadinimą ir lauko pavadinimą):

[
    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);
}
Pasidalinkite „Bluesky“.Dalintis FacebookBendrinkite „LinkedIn“.Bendrinkite „Tumblr“.Dalintis XBendrinkite „LinkedIn“.Prisegti prie Pinterest

Mikkel Bang Christensen

Apie autorių

Mikkel Bang Christensen
Mikkelis yra miklix.com kūrėjas ir savininkas. Jis turi daugiau nei 20 metų profesionalaus kompiuterių programuotojo ir programinės įrangos kūrėjo patirtį ir šiuo metu visą darbo dieną dirba didelėje Europos IT korporacijoje. Kai jis nerašo tinklaraščio, laisvalaikį skiria įvairiems interesams, pomėgiams ir užsiėmimams, kurie tam tikra prasme gali atsispindėti šioje svetainėje nagrinėjamų temų įvairovėje.