Skep 'n opsoekveld vir 'n finansiële dimensie in Dynamics 365
Gepubliseer: 16 Februarie 2025 om 11:36:17 UTC
Laas opgedateer: 12 Januarie 2026 om 08:56:30 UTC
Hierdie artikel verduidelik hoe om 'n opsoekveld vir 'n finansiële dimensie in Dynamics 365 for Operations te skep, insluitend 'n X++-kodevoorbeeld.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Die inligting in hierdie plasing is gebaseer op Dynamics 365 for Operations, maar die meeste daarvan sal ook vir Dynamics AX 2012 werk (sien hieronder).
Ek is onlangs die taak gegee om 'n nuwe veld te skep waarin dit moontlik moet wees om 'n enkele finansiële dimensie te spesifiseer, in hierdie geval Produk. Natuurlik moet die nuwe veld ook die geldige waardes van hierdie dimensie kan opsoek.
Dit is 'n bietjie meer ingewikkeld as 'n gewone opsoek in 'n tabel, maar as jy weet hoe, is dit eintlik nie te erg nie.
Gelukkig bied die standaardtoepassing 'n gerieflike opsoekvorm (DimensionLookup) wat vir die doel gebruik kan word, as jy net sê watter dimensie-attribuut om op te soek.
Eerstens moet jy die vormveld self skep. Dit kan gebaseer wees op 'n tabelveld of 'n wysigingsmetode, dit maak nie saak vir die opsoek self nie, maar op die een of ander manier moet dit die uitgebreide datatipe DimensionValue gebruik.
Jy moet dan 'n OnLookup-gebeurtenisverwerker vir die veld skep. Om 'n gebeurtenisverwerker te skep, regs-kliek op die OnLookup-gebeurtenis vir die veld en kies dan "Kopieer gebeurtenisverwerkermetode". Jy kan dan 'n leë gebeurtenisverwerkermetode in 'n klas plak en dit van daar af wysig.
Let wel: Meeste hiervan sal ook vir Dynamics AX 2012 werk, maar in plaas daarvan om 'n gebeurtenisverwerker te skep, kan jy die vormveld se opsoekmetode oorskryf.
Die gebeurtenisverwerker moet so iets lyk (vervang vormnaam en veldnaam soos nodig):
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);
}
Verdere Leeswerk
As jy hierdie plasing geniet het, sal jy dalk ook van hierdie voorstelle hou:
- Plaas Dynamics 365 FO Virtual Machine Dev of Test in onderhoudsmodus
- Visual Studio hang vas tydens opstart tydens laai van onlangse projekte
- Dateer finansiële dimensiewaarde op vanaf X++-kode in Dynamics 365
