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į.
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);
}