Miklix

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

Paskelbta: 2025 m. vasario 16 d. 11:33:51 UTC
Paskutinį kartą atnaujinta: 2026 m. sausio 12 d. 08:56:11 UTC

Šiame straipsnyje paaiškinama, kaip sukurti finansinės dimensijos paieškos lauką programoje „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 taip pat veiks su „Dynamics AX 2012“ (žr. toliau).

Neseniai man buvo pavesta sukurti naują lauką, kuriame turėtų būti galima nurodyti vieną finansinę dimensiją, šiuo atveju – „Produktas“. Žinoma, naujas laukas taip pat turėtų galėti ieškoti galiojančių šios dimensijos reikšmių.

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

Laimei, standartinė programa pateikia patogią paieškos formą („DimensionLookup“), kurią galima naudoti šiam tikslui, jei tik nurodote, kurio dimensijos atributo ieškoti.

Pirmiausia reikia sukurti patį formos lauką. Jis gali būti pagrįstas lentelės lauku arba redagavimo metodu, nesvarbu pačiai paieškai, bet vienaip ar kitaip turi būti naudojamas išplėstinis duomenų tipas „DimensionValue“.

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

Pastaba: Didžioji dalis šių funkcijų veiks ir „Dynamics AX 2012“, tačiau užuot kūrę įvykių tvarkyklę, galite perrašyti formos lauko paieškos metodą.

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

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

Papildoma literatūra

Jei jums patiko šis įrašas, jums taip pat gali patikti šie pasiūlymai:


Pasidalinkite „Bluesky“.Dalintis FacebookBendrinkite „LinkedIn“.Bendrinkite „Tumblr“.Dalintis XBendrinkite „LinkedIn“.Prisegti prie Pinterest

Mikkel Christensen

Apie autorių

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