Miklix

Lisage Dynamics 365-s laienduse kaudu kuvamis- või redigeerimismeetod

Avaldatud: 16. veebruar 2025, kell 11:55:30 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 08:57:17 UTC

Selles artiklis selgitan, kuidas kasutada klassilaiendit Dynamics 365 for Operationsi tabelisse ja vormile kuvamismeetodi lisamiseks, sealhulgas X++ koodi näited.


See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

Add Display or Edit Method via Extension in Dynamics 365

Kuigi Dynamicsis kuvamis- või redigeerimismeetodite kasutamise kavandamine peaks üldiselt panema kaaluma lahenduse teistsugust kujundamist, on need mõnikord parim viis toimimiseks.

Dynamicsi ja Axapta varasemates versioonides oli tabelite ja vormide kuvamis- või redigeerimismeetodite loomine väga lihtne, aga kui ma hiljuti juhtusin Dynamics 365-s oma esimest redigeerimismeetodit looma, avastasin, et selleks on vaja mõnevõrra teistsugust protseduuri.

Ilmselt on mitu kehtivat lähenemisviisi, kuid minu arvates on parim (nii intuitiivsuse kui ka koodi ilu osas) klassilaiendi kasutamine. Jah, klassilaiendeid saab kasutada meetodite lisamiseks ka teistele elemenditüüpidele peale klasside – antud juhul tabelile, aga see toimib ka vormide puhul.

Esmalt loo uus klass. Võid sellele nimeks panna ükskõik millise nime, aga mingil põhjusel peab selle järelliide olema "_Extension". Oletame, et pead CustTable'ile lisama kuvamismeetodi, võiksid sellele näiteks nimeks panna MyCustTable_Extension.

Klass peab olema kaunistatud ExtensionOf-iga, et süsteem teaks, mida laiendate, näiteks nii:

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

Nüüd saate oma kuvamismeetodi selles klassis lihtsalt rakendada, nagu oleksite teinud otse tabelis Dynamicsi varasemates versioonides – "see" viitab isegi tabelile, nii et pääsete juurde väljadele ja teistele meetoditele.

Näiteks klass lihtsa (ja täiesti kasutu) kuvamismeetodiga, mis tagastab ainult kliendi kontonumbri, võiks välja näha selline:

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

        return this.AccountNum;
    }
}

Nüüd, kuvamismeetodi lisamiseks vormile (või vormilaiendile, kui te ei saa vormi otse muuta), peate vormile käsitsi välja lisama ja veenduma, et kasutate õiget tüüpi (antud näites stringi).

Seejärel tuleks juhtelemendis määrata DataSource'i väärtuseks CustTable (või mis iganes teie CustTable'i andmeallika nimi ka poleks) ja DataMethodi väärtuseks MyCustTable_Extension.displayAccountNum (veenduge, et lisate klassi nime, vastasel juhul kompilaator meetodit ei leia).

Ja oledki valmis :-)

Värskendus: Kuvamismeetodi lisamisel vormile ei ole enam vaja laiendusklassi nime lisada, kuid algse avaldamise ajal oli see vajalik. Jätan teabe siia juhuks, kui mõned lugejad kasutavad endiselt vanemaid versioone.

Lisalugemist

Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:


Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Christensen

Autorist

Mikkel Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.