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.
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:
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:
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.