Miklix

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

Avaldatud: 16. veebruar 2025, kell 11:55:30 UTC

Selles artiklis selgitan, kuidas kasutada klassilaiendit kuvameetodi lisamiseks tabelile ja vormile rakenduses Dynamics 365 for Operations, sealhulgas X++ koodinä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 plaanite kasutada Dynamicsis kuvamis- või redigeerimismeetodeid, peaksite üldiselt mõtlema, kas võiksite oma lahenduse teistmoodi kujundada, on need mõnikord parim viis.

Dynamicsi ja Axapta eelmistes versioonides oli tabelites ja vormides kuvamis- või redigeerimismeetodite loomine väga lihtne, kuid kui mul hiljuti juhtus, et pidin Dynamics 365-s oma esimest redigeerimismeetodit tegema, avastasin, et selle tegemise protseduur on mõnevõrra erinev.

Ilmselt on mitu kehtivat lähenemisviisi, kuid minu arvates on parim (nii intuitsiooni kui ka koodi ilu poolest) kasutada klassilaiendit. Jah, klassilaiendeid saab kasutada meetodite lisamiseks muudele elemenditüüpidele peale klasside – antud juhul tabeli, kuid see töötab ka vormide puhul.

Esiteks looge uus klass. Sa võid sellele nimetada mis iganes soovid, aga millegipärast peab selle järelliide olema "_Laiend". Oletame, et peate CustTable'ile lisama kuvamismeetodi, näiteks võite sellele panna nimeks MyCustTable_Extension.

Klassi peab kaunistama ExtensionOf, et anda süsteemile teada, mida laiendate, näiteks:

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

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

Näiteks lihtsa (ja täiesti kasutu) kuvamismeetodiga klass, mis tagastab lihtsalt kliendi kontonumbri, võib välja näha järgmine:

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

        return this.AccountNum;
    }
}

Nüüd, et lisada vormile kuvamismeetod (või vormilaiend, kui te ei saa vormi otse redigeerida), peate vormile käsitsi lisama välja ja veenduma, et kasutate õiget tüüpi (selle näite string).

Seejärel määrake juhtelemendis DataSource väärtuseks CustTable (või mis iganes teie CustTable andmeallika nimi on) ja DataMethod väärtuseks MyCustTable_Extension.displayAccountNum (lisage kindlasti klassi nimi, vastasel juhul ei leia kompilaator meetodit).

Ja ongi valmis :-)

Värskendus: vormile kuvamismeetodi lisamisel ei pea enam lisama laiendusklassi nime, kuid algsel avaldamise ajal see oli. Jätan info siia juhuks, kui mõni lugeja kasutab veel vanemaid versioone.

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

Mikkel Bang Christensen

Autorist

Mikkel Bang 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.