Miklix

Создавање поле за пребарување за финансиска димензија во 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);
}

Дополнително читање

Ако ви се допадна овој пост, можеби ќе ви се допаднат и овие предлози:


Споделете на BlueskyСподелете на ФејсбукСподелете на LinkedInСподелете на TumblrСподелете на XСподелете на LinkedInЗакачи на Pinterest

Микел Кристенсен

За авторот

Микел Кристенсен
Микел е креатор и сопственик на miklix.com. Тој има над 20 години искуство како професионален компјутерски програмер/развивач на софтвер и моментално е вработен со полно работно време во голема европска ИТ корпорација. Кога не пишува блог, тој го поминува своето слободно време на широк спектар на интереси, хоби и активности, кои до одреден степен може да се рефлектираат во разновидните теми опфатени на оваа веб-локација.