Keresési mező létrehozása egy pénzügyi dimenzióhoz a Dynamics 365-ben
Megjelent: 2025. február 16. 11:33:44 UTC
Ez a cikk elmagyarázza, hogyan hozhat létre keresési mezőt egy pénzügyi dimenzióhoz a Dynamics 365 for Operations alkalmazásban, beleértve az X++ kód példáját.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Az ebben a bejegyzésben található információk a Dynamics 365 for Operations rendszeren alapulnak, de a legtöbb a Dynamics AX 2012 rendszerhez is működik (lásd alább).
Nemrég azt a feladatot kaptam, hogy hozzak létre egy új mezőt, amelyben egyetlen pénzügyi dimenziót, jelen esetben Terméket kell megadni. Természetesen az új mezőnek képesnek kell lennie a dimenzió érvényes értékeinek megkeresésére is.
Ez egy kicsit bonyolultabb, mint egy táblázatban való szokásos keresés, de ha tudod, hogyan, akkor valójában nem is olyan rossz.
Szerencsére a szabványos alkalmazás egy kényelmes keresési űrlapot (DimensionLookup) biztosít, amely használható erre a célra, ha csak megadja, hogy melyik dimenzió attribútumot keresse.
Először is létre kell hoznia magát az űrlapmezőt. Ez alapulhat táblázatmezőn vagy szerkesztési metóduson, nem számít magának a keresésnek, de valamilyen módon a DimensionValue kiterjesztett adattípust kell használnia.
Ezután létre kell hoznia egy OnLookup eseménykezelőt a mezőhöz. Eseménykezelő létrehozásához kattintson a jobb gombbal a mező OnLookup eseményére, majd válassza az „Eseménykezelő metódusának másolása” lehetőséget. Ezután beilleszthet egy üres eseménykezelő metódust egy osztályba, és onnan szerkesztheti.
Megjegyzés: Ennek nagy része a Dynamics AX 2012 esetében is működik, de eseménykezelő létrehozása helyett felülbírálhatja az űrlapmező keresési metódusát.
Az eseménykezelőnek valahogy így kell kinéznie (szükség szerint cserélje ki az űrlap nevét és a mező nevét):
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);
}