Vytvorenie vyhľadávacieho poľa pre finančnú dimenziu v Dynamics 365
Publikované: 16. februára 2025 o 11:34:04 UTC
Posledná aktualizácia: 12. januára 2026 o 8:56:15 UTC
Tento článok vysvetľuje, ako vytvoriť vyhľadávacie pole pre finančnú dimenziu v systéme Dynamics 365 for Operations vrátane príkladu kódu X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Informácie v tomto príspevku sú založené na systéme Dynamics 365 for Operations, ale väčšina z nich bude fungovať aj pre systém Dynamics AX 2012 (pozri nižšie).
Nedávno som dostal za úlohu vytvoriť nové pole, v ktorom by malo byť možné zadať jeden finančný rozmer, v tomto prípade Produkt. Nové pole by samozrejme malo byť schopné vyhľadávať aj platné hodnoty tohto rozmeru.
Je to trochu zložitejšie ako bežné vyhľadávanie v tabuľke, ale ak viete ako, nie je to vlastne až také zlé.
Našťastie štandardná aplikácia poskytuje pohodlný vyhľadávací formulár (DimensionLookup), ktorý sa dá na tento účel použiť, ak jej len poviete, ktorý atribút dimenzie má vyhľadávať.
Najprv musíte vytvoriť samotné pole formulára. Môže byť založené na poli tabuľky alebo metóde úprav, pre samotné vyhľadávanie to nezáleží, ale v istom zmysle musí používať rozšírený dátový typ DimensionValue.
Potom musíte pre pole vytvoriť obslužný program udalosti OnLookup. Ak chcete vytvoriť obslužný program udalosti, kliknite pravým tlačidlom myši na udalosť OnLookup pre pole a potom vyberte možnosť „Kopírovať metódu obslužného programu udalosti“. Prázdnu metódu obslužného programu udalosti potom môžete vložiť do triedy a odtiaľ ju upravovať.
Upozornenie: Väčšina z toho bude fungovať aj pre Dynamics AX 2012, ale namiesto vytvorenia obslužného programu udalosti môžete prepísať metódu vyhľadávania poľa formulára.
Obsluha udalosti musí vyzerať nejako takto (podľa potreby nahraďte názov formulára a názov poľa):
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);
}
Ďalšie čítanie
Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:
- Prepnite Dynamics 365 FO Virtual Machine Dev alebo Test do režimu údržby
- Visual Studio sa pri načítaní posledných projektov zavesí pri spustení
- Pridajte metódu zobrazenia alebo úpravy prostredníctvom rozšírenia v Dynamics 365
