Miklix

Додајте метод за приказ или уредување преку екстензија во Dynamics 365

Објавено: 5 март 2025, во 19:53:25 UTC
Последно ажурирано: 12 јануари 2026, во 08:57:55 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 за да му се овозможи на системот да знае што проширувате, вака:

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

Сега можете едноставно да го имплементирате вашиот метод за прикажување во оваа класа, како што би направиле директно на табелата во претходните верзии на Dynamics - „ова“ дури и се повикува на табелата, така што можете да пристапите до полиња и други методи.

На пример, класа со едноставен (и целосно бескорисен) метод за прикажување кој само го враќа бројот на сметката на клиентот би можела да изгледа вака:

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

        return this.AccountNum;
    }
}

Сега, за да го додадете методот за прикажување во формулар (или екстензија на формулар, ако не можете директно да го уредувате формуларот), треба рачно да додадете поле во формуларот и да се осигурате дека го користите точниот тип (низа во овој пример).

Потоа, на контролата би го поставиле DataSource на CustTable (или кое и да е името на вашиот извор на податоци CustTable) и DataMethod на MyCustTable_Extension.displayAccountNum (осигурајте се дека сте го вклучиле името на класата, во спротивно компајлерот нема да може да го пронајде методот).

И заврши :-)

Ажурирање: Повеќе не е потребно да се вклучува името на класата за екстензија при додавање на методот за прикажување во формулар, но во првичното време на објавување, беше. Ги оставам информациите овде во случај некои читатели сè уште да користат постари верзии.

Дополнително читање

Ако ви се допадна овој пост, можеби ќе ви се допаднат и овие предлози:


Споделете на BlueskyСподелете на ФејсбукСподелете на LinkedInСподелете на TumblrСподелете на XСподелете на LinkedInЗакачи на Pinterest

Микел Кристенсен

За авторот

Микел Кристенсен
Микел е креатор и сопственик на miklix.com. Тој има над 20 години искуство како професионален компјутерски програмер/развивач на софтвер и моментално е вработен со полно работно време во голема европска ИТ корпорација. Кога не пишува блог, тој го поминува своето слободно време на широк спектар на интереси, хоби и активности, кои до одреден степен може да се рефлектираат во разновидните теми опфатени на оваа веб-локација.