Vytvoření vyhledávacího pole pro finanční dimenzi v Dynamics 365
Vydáno: 16. února 2025 v 11:32:41 UTC
Poslední aktualizace: 12. ledna 2026 v 8:56:04 UTC
Tento článek vysvětluje, jak vytvořit vyhledávací pole pro finanční dimenzi v aplikaci Dynamics 365 for Operations, včetně příkladu kódu X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Informace v tomto příspěvku jsou založeny na aplikaci Dynamics 365 for Operations, ale většina z nich bude fungovat i pro Dynamics AX 2012 (viz níže).
Nedávno jsem dostal za úkol vytvořit nové pole, ve kterém by mělo být možné zadat jednu finanční dimenzi, v tomto případě Produkt. Nové pole by samozřejmě mělo také umožnit vyhledávat platné hodnoty této dimenze.
Je to trochu složitější než běžné vyhledávání v tabulce, ale pokud víte jak na to, vlastně to není tak hrozné.
Naštěstí standardní aplikace nabízí praktický vyhledávací formulář (DimensionLookup), který lze k tomuto účelu použít, stačí sdělit, který atribut dimenze má vyhledat.
Nejprve je třeba vytvořit samotné pole formuláře. Může být založeno na poli tabulky nebo metodě úprav, pro samotné vyhledávání to nevadí, ale v jistém smyslu musí používat rozšířený datový typ DimensionValue.
Pak je potřeba pro dané pole vytvořit obslužnou rutinu události OnLookup. Chcete-li vytvořit obslužnou rutinu události, klikněte pravým tlačítkem myši na událost OnLookup pro dané pole a poté vyberte možnost „Kopírovat metodu obslužné rutiny události“. Prázdnou metodu obslužné rutiny události pak můžete vložit do třídy a odtud ji upravovat.
Upozornění: Většina z toho bude fungovat i pro Dynamics AX 2012, ale místo vytváření obslužné rutiny události můžete přepsat vyhledávací metodu pole formuláře.
Obslužná rutina události musí vypadat nějak takto (v případě potřeby nahraďte název formuláře a název pole):
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);
}
Další čtení
Pokud se vám tento příspěvek líbil, mohly by se vám líbit i tyto návrhy:
- Aktualizujte hodnotu finanční dimenze z kódu X++ v Dynamics 365
- Visual Studio se při načítání posledních projektů při spuštění zavěsí
- Přidejte metodu zobrazení nebo úprav prostřednictvím rozšíření v Dynamics 365
