Додайте метод відображення або редагування через розширення в Dynamics 365
Опубліковано: 16 лютого 2025 р. о 11:56:11 UTC
Останнє оновлення: 12 січня 2026 р. о 08:57:32 UTC
У цій статті я пояснюю, як використовувати розширення класу для додавання методу відображення до таблиці та форми в Dynamics 365 for Operations, включаючи приклади коду X++.
Add Display or Edit Method via Extension in Dynamics 365
Хоча планування використання методів відображення або редагування в Dynamics зазвичай має спонукати вас задуматися про те, чи можна розробити своє рішення по-іншому, іноді це найкращий варіант.
У попередніх версіях Dynamics та Axapta було дуже легко створювати методи відображення або редагування для таблиць і форм, але коли мені нещодавно довелося створити свій перший метод редагування в Dynamics 365, я виявив, що процедура цього дещо відрізняється.
Очевидно, що існує кілька дієвих підходів, але той, який я вважаю найкращим (як з точки зору інтуїтивності, так і привабливості коду), — це використання розширення класу. Так, ви можете використовувати розширення класів для додавання методів до інших типів елементів, окрім класів — у цьому випадку таблиці, але це також працює для форм.
Спочатку створіть новий клас. Ви можете назвати його як завгодно, але з якоїсь причини він повинен мати суфікс "_Extension". Припустимо, вам потрібно додати метод відображення до CustTable, ви можете, наприклад, назвати його MyCustTable_Extension.
Клас має бути доповнений за допомогою ExtensionOf, щоб система знала, що ви розширюєте, ось так:
public final class MyCustTable_Extension
{
}
Тепер ви можете просто реалізувати свій метод відображення в цьому класі, як ви робили б це безпосередньо в таблиці в попередніх версіях Dynamics – "this" навіть посилається на таблицю, тож ви можете отримати доступ до полів та інших методів.
Наприклад, клас із простим (і абсолютно марним) методом відображення, який просто повертає номер рахунку клієнта, може виглядати так:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Тепер, щоб додати метод відображення до форми (або розширення форми, якщо ви не можете редагувати форму безпосередньо), вам потрібно додати поле до форми вручну та переконатися, що ви використовуєте правильний тип (рядок у цьому прикладі).
Потім, на елементі керування, ви встановите DataSource на CustTable (або будь-яку іншу назву вашого джерела даних CustTable), а DataMethod на MyCustTable_Extension.displayAccountNum (обов'язково вкажіть назву класу, інакше компілятор не зможе знайти метод).
І все готово :-)
Оновлення: Більше не потрібно вказувати назву класу розширення під час додавання методу відображення до форми, хоча на момент початкової публікації це було необхідно. Я залишаю цю інформацію тут на випадок, якщо деякі читачі все ще використовують старіші версії.
Додаткова література
Якщо вам сподобався цей пост, вам також можуть сподобатися ці пропозиції:
- Переведіть розробку або тест віртуальної машини Dynamics 365 у режим обслуговування
- Створення поля підстановки для фінансового виміру в Dynamics 365
- Visual Studio зависає при запуску під час завантаження останніх проектів
