Dodaj metodę wyświetlania lub edycji za pomocą rozszerzenia w Dynamics 365
Opublikowano: 16 lutego 2025 11:55:50 UTC
W tym artykule wyjaśniam, jak za pomocą rozszerzenia klasy dodać metodę wyświetlania do tabeli i formularza w Dynamics 365 for Operations, podając również przykłady kodu X++.
Add Display or Edit Method via Extension in Dynamics 365
Chociaż planowanie wykorzystania metod wyświetlania i edycji w Dynamics powinno skłaniać do zastanowienia się nad możliwością zaprojektowania rozwiązania w inny sposób, to jednak czasami są one najlepszym rozwiązaniem.
W poprzednich wersjach 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 Dynamics 365, odkryłem, że procedura jest nieco inna.
Istnieje ewidentnie kilka słusznych podejść, ale to, które uważam za najlepsze (zarówno pod względem intuicyjności, jak i ładności kodu), to użycie rozszerzenia klasy. Tak, możesz 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 nazwać ją jak chcesz, ale z jakiegoś powodu musi mieć sufiks „_Extension”. Powiedzmy, że musisz 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:
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 zupełnie bezużyteczną) metodą wyświetlania, która po prostu zwraca numer konta klienta, mogłaby wyglądać następująco:
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 znajdzie metody).
I gotowe :-)
Aktualizacja: Nie jest już konieczne dołączanie nazwy klasy rozszerzenia podczas dodawania metody wyświetlania do formularza, ale w pierwotnym momencie publikacji tak było. Zostawiam tę informację tutaj 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:
- Tworzenie pola odnośnika dla wymiaru finansowego w Dynamics 365
- Visual Studio zawiesza się przy uruchamianiu podczas wczytywania ostatnich projektów
- Aktualizuj wartość wymiaru finansowego z kodu X++ w Dynamics 365