Miklix

Tworzenie pola odnośnika dla wymiaru finansowego w Dynamics 365

Opublikowano: 16 lutego 2025 11:33:57 UTC
Ostatnia aktualizacja: 12 stycznia 2026 08:56:13 UTC

W tym artykule wyjaśniono, jak utworzyć pole odnośnika dla wymiaru finansowego w programie Dynamics 365 for Operations, w tym przykład kodu X++.


Ta strona została przetłumaczona maszynowo z języka angielskiego, aby była dostępna dla jak największej liczby osób. Niestety, tłumaczenie maszynowe nie jest jeszcze dopracowaną technologią, więc mogą wystąpić błędy. Jeśli wolisz, możesz wyświetlić oryginalną angielską wersję tutaj:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Informacje zawarte w tym poście dotyczą rozwiązania Dynamics 365 for Operations, ale większość z nich będzie działać również w systemie Dynamics AX 2012 (patrz poniżej).

Niedawno otrzymałem zadanie stworzenia nowego pola, w którym będzie można określić pojedynczy wymiar finansowy, w tym przypadku Produkt. Oczywiście nowe pole powinno również umożliwiać wyszukiwanie prawidłowych wartości tego wymiaru.

Jest to nieco bardziej skomplikowane niż zwykłe wyszukiwanie w tabeli, ale jeśli wiesz jak, to wcale nie jest takie trudne.

Na szczęście standardowa aplikacja udostępnia wygodny formularz wyszukiwania (DimensionLookup), który można wykorzystać w tym celu, po prostu wskazując, który atrybut wymiaru ma zostać wyszukany.

Najpierw musisz utworzyć samo pole formularza. Może ono bazować na polu tabeli lub metodzie edycji, nie ma to znaczenia dla samego wyszukiwania, ale w taki czy inny sposób musi wykorzystywać rozszerzony typ danych DimensionValue.

Następnie należy utworzyć procedurę obsługi zdarzeń OnLookup dla danego pola. Aby utworzyć procedurę obsługi zdarzeń, kliknij prawym przyciskiem myszy zdarzenie OnLookup dla danego pola i wybierz opcję „Kopiuj metodę obsługi zdarzeń”. Następnie można wkleić pustą metodę obsługi zdarzeń do klasy i edytować ją stamtąd.

Uwaga: Większość z tych rozwiązań będzie działać również w systemie Dynamics AX 2012, ale zamiast tworzyć procedurę obsługi zdarzeń, można zastąpić metodę wyszukiwania w polu formularza.

Obsługujący zdarzenie obiekt powinien wyglądać mniej więcej tak (w razie potrzeby zmień nazwę formularza i nazwę pola):

[
    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);
}

Dalsza lektura

Jeśli podobał Ci się ten wpis, mogą Cię zainteresować również poniższe sugestie:


Udostępnij na BlueskyUdostępnij na FacebookuUdostępnij na LinkedInUdostępnij na TumblrUdostępnij na XUdostępnij na LinkedInPrzypnij na Pintereście

Mikkel Christensen

O autorze

Mikkel Christensen
Mikkel jest twórcą i właścicielem miklix.com. Ma ponad 20-letnie doświadczenie jako profesjonalny programista komputerowy / programista oprogramowania i jest obecnie zatrudniony na pełny etat w dużej europejskiej korporacji IT. Kiedy nie bloguje, poświęca swój wolny czas na szeroki wachlarz zainteresowań, hobby i aktywności, co może w pewnym stopniu znaleźć odzwierciedlenie w różnorodności tematów poruszanych na tej stronie.