Miklix

Dodaj metodę wyświetlania lub edycji za pomocą rozszerzenia w Dynamics 365

Opublikowano: 16 lutego 2025 11:55:50 UTC
Ostatnia aktualizacja: 12 stycznia 2026 08:57:25 UTC

W tym artykule wyjaśnię, jak za pomocą rozszerzenia klasy dodać metodę wyświetlania do tabeli i formularza w Dynamics 365 for Operations, załączając przykłady 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:

Add Display or Edit Method via Extension in Dynamics 365

Chociaż planowanie wykorzystania metod wyświetlania i edycji w Dynamics powinno skłonić Cię do zastanowienia się nad możliwością zaprojektowania rozwiązania w inny sposób, czasami jest to najlepsze wyjście.

Poprzednich wersjach systemów Dynamics i Axapta tworzenie metod wyświetlania i edycji w tabelach i formularzach było bardzo proste, ale gdy niedawno musiałem utworzyć swoją pierwszą metodę edycji w systemie Dynamics 365, odkryłem, że procedura jest nieco inna.

Istnieje oczywiście kilka słusznych podejść, ale to, które uważam za najlepsze (zarówno pod względem intuicyjności, jak i estetyki kodu), to użycie rozszerzenia klasy. Owszem, można użyć rozszerzeń klasy, aby dodać metody do innych typów elementów niż klasy – w tym przypadku tabeli, ale działa to również w przypadku formularzy.

Najpierw utwórz nową klasę. Możesz nadać jej dowolną nazwę, ale z jakiegoś powodu musi mieć przyrostek „_Extension”. Załóżmy, że chcesz dodać metodę wyświetlania do CustTable, możesz na przykład nazwać ją MyCustTable_Extension.

Klasę należy ozdobić poleceniem ExtensionOf, aby system wiedział, co rozszerzasz, w następujący sposób:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

Teraz możesz zaimplementować metodę wyświetlania w tej klasie, tak jak robiłeś to bezpośrednio w tabeli we wcześniejszych wersjach Dynamics — „this” odwołuje się nawet do tabeli, więc możesz uzyskać dostęp do pól i innych metod.

Na przykład klasa z prostą (i całkowicie bezużyteczną) metodą wyświetlania, która po prostu zwraca numer konta klienta, mogłaby wyglądać następująco:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

Teraz, aby dodać metodę wyświetlania do formularza (lub rozszerzenia formularza, jeśli nie możesz edytować formularza bezpośrednio), musisz ręcznie dodać pole do formularza i upewnić się, że używasz prawidłowego typu (w tym przykładzie jest to ciąg znaków).

Następnie w kontrolce należy ustawić DataSource na CustTable (lub inną nazwę źródła danych CustTable), a DataMethod na MyCustTable_Extension.displayAccountNum (pamiętaj o uwzględnieniu nazwy klasy, w przeciwnym razie kompilator nie będzie mógł znaleźć metody).

I gotowe :-)

Aktualizacja: Nie jest już konieczne dodawanie nazwy klasy rozszerzenia podczas dodawania metody wyświetlania do formularza, ale w momencie pierwotnej publikacji tak było. Pozostawiam tę informację na wypadek, gdyby niektórzy czytelnicy nadal korzystali ze starszych wersji.

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.