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į.
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:
- Įjunkite „Dynamics 365 FO Virtual Machine Dev“ arba „Test“ į priežiūros režimą
- "Visual Studio" pakimba paleidimo metu, kai įkeliami naujausi projektai
- Atnaujinkite finansinės dimensijos vertę iš X++ kodo sistemoje „Dynamics 365“.
