Finantsdimensiooni otsinguvälja loomine rakenduses Dynamics 365
Avaldatud: 16. veebruar 2025, kell 11:33:36 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 08:56:07 UTC
See artikkel selgitab, kuidas luua Dynamics 365 for Operationsis finantsdimensiooni otsinguvälja, sh X++ koodi näide.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Selle postituse teave põhineb Dynamics 365 for Operationsil, kuid suurem osa sellest töötab ka Dynamics AX 2012-ga (vt allpool).
Hiljuti anti mulle ülesandeks luua uus väli, kus peaks olema võimalik määrata üks finantsdimensioon, antud juhul Toode. Loomulikult peaks uus väli suutma otsida ka selle dimensiooni kehtivaid väärtusi.
See on veidi keerulisem kui tavaline tabeliotsing, aga kui sa tead, kuidas, siis pole see tegelikult nii hull.
Õnneks pakub standardrakendus mugavat otsinguvormi (DimensionLookup), mida saab selleks otstarbeks kasutada, kui lihtsalt öelda, millist dimensiooni atribuuti otsida.
Esmalt tuleb luua vormiväli ise. See võib põhineda tabeliväljal või redigeerimismeetodil, otsingu enda jaoks pole sellel tähtsust, aga ühel või teisel moel peab see kasutama laiendatud andmetüüpi DimensionValue.
Seejärel peate välja jaoks looma OnLookup sündmusekäitleja. Sündmusekäitleja loomiseks paremklõpsake välja OnLookup sündmusel ja valige "Kopeeri sündmusekäitleja meetod". Seejärel saate tühja sündmusekäitleja meetodi klassi kleepida ja seda sealt redigeerida.
Märkus. Suurem osa sellest töötab ka Dynamics AX 2012 puhul, kuid sündmusekäitleja loomise asemel saate vormivälja otsingumeetodi alistada.
Sündmusekäitleja peaks välja nägema umbes selline (asenda vajadusel vormi nimi ja välja nimi):
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);
}
Lisalugemist
Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:
- Visual Studio jääb hiljutiste projektide laadimise ajal käivitamisel kinni
- Lülitage Dynamics 365 FO Virtual Machine Dev või Test hooldusrežiimi
- Finantsdimensiooni väärtuse värskendamine Dynamics 365 koodist X++
