Добавяне на метод за показване или редактиране чрез разширение в Dynamics 365
Публикувано: 16 февруари 2025 г. в 11:54:59 ч. 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 (уверете се, че сте включили името на класа, в противен случай компилаторът не може да намери метода).
И сте готови :-)
Актуализация: Вече не е необходимо да се включва името на класа разширение при добавяне на метода за показване към формуляр, но в първоначалния момент на публикуване беше. Оставям информацията тук, в случай че някои читатели все още използват по-стари версии.