Создавање поле за пребарување за финансиска димензија во Dynamics 365
Објавено: 5 март 2025, во 19:53:30 UTC
Последно ажурирано: 12 јануари 2026, во 08:56:55 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++ во Dynamics 365
- Visual Studio се запира при стартување додека се вчитуваат неодамнешни проекти
- Додајте метод за приказ или уредување преку екстензија во Dynamics 365
