Креирање поља за претрагу за финансијску димензију у Динамицс 365
Објављено: 16. фебруар 2025. 11:39:10 UTC
Овај чланак објашњава како да направите поље за претрагу за финансијску димензију у Динамицс 365 фор Оператионс, укључујући пример Кс++ кода.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Информације у овом посту су засноване на Динамицс 365 фор Оператионс, али већина њих ће радити и за Динамицс АКС 2012 (погледајте испод).
Недавно сам добио задатак да креирам ново поље у којем би требало да буде могуће навести једну финансијску димензију, у овом случају Производ. Наравно, ново поље би такође требало да има могућност да тражи важеће вредности ове димензије.
Ово је мало компликованије од обичног тражења у табели, али ако знате како, заправо и није лоше.
На срећу, стандардна апликација пружа згодан образац за тражење (ДименсионЛоокуп) који се може користити у ту сврху, ако јој само кажете који атрибут димензије да тражи.
Прво, потребно је да креирате само поље обрасца. Ово може бити засновано на пољу табеле или методи за уређивање, није важно за само тражење, али на овај или онај начин мора да користи проширени тип података ДименсионВалуе.
Затим морате да креирате обрађивач догађаја ОнЛоокуп за поље. Да бисте креирали обрађивач догађаја, кликните десним тастером миша на догађај ОнЛоокуп за поље, а затим изаберите „Копирај метод руковаоца догађајима“. Затим можете да налепите празну методу за руковање догађајима у класу и одатле је уредите.
Напомена: Већина овога ће функционисати и за Динамицс АКС 2012, али уместо да креирате обрађивач догађаја, можете заменити метод тражења поља обрасца.
Руковалац догађаја мора изгледати отприлике овако (замените име обрасца и име поља по потреби):
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);
}