Paggawa ng Lookup Field para sa Financial Dimension sa Dynamics 365
Nai-publish: Marso 19, 2025 nang 9:35:41 PM UTC
Ipinapaliwanag ng artikulong ito kung paano gumawa ng lookup field para sa isang dimensyon sa pananalapi sa Dynamics 365 for Operations, kabilang ang isang halimbawa ng X++ code.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Ang impormasyon sa post na ito ay batay sa Dynamics 365 for Operations, ngunit karamihan nito ay gagana rin para sa Dynamics AX 2012 (tingnan sa ibaba).
Kamakailan lamang, inatasan ako na lumikha ng isang bagong field kung saan maaari ring tukuyin ang isang solong financial dimension, sa kasong ito ay ang Product. Siyempre, ang bagong field ay dapat ding kayang maghanap ng mga wastong halaga ng dimensyong ito.
Medyo mas kumplikado ito kaysa sa isang regular na lookup sa isang table, ngunit kung alam mo kung paano, hindi naman ito mahirap.
Sa kabutihang palad, ang standard na application ay nagbibigay ng isang maginhawang lookup form (DimensionLookup) na maaaring gamitin para sa layuning ito, kung sasabihin mo lamang kung aling dimension attribute ang hahanapin.
Una, kailangan mong lumikha ng field para sa form. Maaari itong ibatay sa isang table field o isang edit method, hindi mahalaga para sa lookup mismo, ngunit sa isang paraan o iba pa, kinakailangan itong gumamit ng DimensionValue na extended data type.
Kailangan mo ring lumikha ng isang OnLookup na event handler para sa field. Upang lumikha ng event handler, i-right-click ang OnLookup event para sa field, pagkatapos piliin ang "Copy event handler method". Maaari mong ipaste ang isang walang laman na event handler method sa isang klase at i-edit ito mula doon.
Pansin: Karamihan sa mga ito ay gagana rin para sa Dynamics AX 2012, ngunit sa halip na lumikha ng isang event handler, maaari mong i-override ang lookup method ng form field.
Ang event handler ay dapat na ganito (palitan ang pangalan ng form at pangalan ng field kung kinakailangan):
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);
}