Създаване на справочно поле за финансово измерение в Dynamics 365
Публикувано: 16 февруари 2025 г. в 11:32:40 ч. UTC
Последна актуализация: 12 януари 2026 г. в 8:56:04 ч. UTC
Тази статия обяснява как да създадете поле за търсене за финансово измерение в Dynamics 365 for Operations, включително примерен код в X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Информацията в тази публикация е базирана на Dynamics 365 for Operations, но по-голямата част от нея ще работи и за Dynamics AX 2012 (вижте по-долу).
Наскоро ми беше възложена задачата да създам ново поле, в което да е възможно да се посочи едно финансово измерение, в този случай Продукт. Разбира се, новото поле трябва да може да търси и валидните стойности на това измерение.
Това е малко по-сложно от обикновеното търсене в таблица, но ако знаете как, всъщност не е чак толкова лошо.
За щастие, стандартното приложение предоставя удобна форма за търсене (DimensionLookup), която може да се използва за целта, ако просто му кажете кой атрибут на измерението да се търси.
Първо, трябва да създадете самото поле на формуляра. То може да се базира на таблично поле или метод за редактиране, няма значение за самото търсене, но по един или друг начин трябва да използва разширения тип данни DimensionValue.
След това трябва да създадете манипулатор на събития OnLookup за полето. За да създадете манипулатор на събития, щракнете с десния бутон върху събитието OnLookup за полето и след това изберете „Копиране на метода за манипулатор на събития“. След това можете да поставите празен метод за манипулатор на събития в клас и да го редактирате оттам.
Забележка: Повечето от това ще работи и за Dynamics AX 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);
}
Допълнително четене
Ако ви е харесала тази публикация, може да ви харесат и тези предложения:
- Актуализирайте стойността на финансовото измерение от X++ Code в Dynamics 365
- Visual Studio увисва при стартиране, докато зарежда последните проекти
- Поставете Dynamics 365 FO Virtual Machine Dev или Test в режим на поддръжка
