Krijimi i një fushe kërkimi për një dimension financiar në Dynamics 365
Publikuar: 16 shkurt 2025 në 11:36:16 e paradites, UTC
Ky artikull shpjegon se si të krijoni një fushë kërkimi për një dimension financiar në Dynamics 365 for Operations, duke përfshirë një shembull të kodit X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Informacioni në këtë postim bazohet në Dynamics 365 for Operations, por shumica e tij do të funksionojë edhe për Dynamics AX 2012 (shih më poshtë).
Kohët e fundit jam ngarkuar me krijimin e një fushe të re në të cilën duhet të jetë e mundur të specifikohet një dimension i vetëm financiar, në këtë rast Produkt. Sigurisht, fusha e re duhet gjithashtu të jetë në gjendje të kërkojë vlerat e vlefshme të këtij dimensioni.
Kjo është pak më e komplikuar se një kërkim i rregullt në një tabelë, por nëse e dini se si, në fakt nuk është shumë keq.
Për fat të mirë, aplikacioni standard ofron një formular të përshtatshëm kërkimi (DimensionLookup) që mund të përdoret për këtë qëllim, nëse thjesht i tregoni se cilin atribut dimensioni duhet kërkuar.
Së pari, duhet të krijoni vetë fushën e formularit. Kjo mund të bazohet në një fushë tabele ose një metodë redaktimi, nuk ka rëndësi për vetë kërkimin, por në një mënyrë ose në një tjetër duhet të përdorë llojin e të dhënave të zgjeruara DimensionValue.
Më pas duhet të krijoni një mbajtës të ngjarjeve OnLookup për këtë fushë. Për të krijuar një mbajtës të ngjarjeve, kliko me të djathtën në ngjarjen OnLookup për fushën, më pas zgjidhni "Copy even event handler method". Më pas mund të ngjisni një metodë të zbrazët të mbajtësit të ngjarjeve në një klasë dhe ta modifikoni prej andej.
Shënim: Shumica e kësaj do të funksionojë edhe për Dynamics AX 2012, por në vend që të krijoni një mbajtës ngjarjesh, mund të anashkaloni metodën e kërkimit të fushës së formularit.
Trajtuesi i ngjarjes duhet të duket diçka si kjo (zëvendësoni emrin e formularit dhe emrin e fushës sipas nevojës):
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);
}