Adăugați o metodă de afișare sau de editare prin extensie în Dynamics 365
Publicat: 16 februarie 2025 la 11:56:02 UTC
În acest articol, explic cum să utilizați o extensie de clasă pentru a adăuga o metodă de afișare la un tabel și un formular în Dynamics 365 for Operations, inclusiv exemple de cod X++.
Add Display or Edit Method via Extension in Dynamics 365
Deși planificarea utilizării metodelor de afișare sau editare în Dynamics este ceva care ar trebui să vă facă, în general, să vă gândiți dacă ați putea să vă proiectați soluția într-un mod diferit, uneori acestea sunt cea mai bună cale de a merge.
În versiunile anterioare ale Dynamics și Axapta, a fost foarte ușor să creați metode de afișare sau editare pe tabele și formulare, dar când recent s-a întâmplat să fac prima mea metodă de editare în Dynamics 365, am descoperit că procedura pentru a face acest lucru este oarecum diferită.
În mod evident, există mai multe abordări valide, dar cea pe care o găsesc cea mai bună (atât în ceea ce privește intuitivitatea, cât și frumusețea codului) este utilizarea unei extensii de clasă. Da, puteți folosi extensii de clasă pentru a adăuga metode la alte tipuri de elemente decât clase - în acest caz un tabel, dar funcționează și pentru formulare.
Mai întâi, creați o nouă clasă. Îi puteți denumi orice doriți, dar din anumite motive trebuie să aibă sufixul „_Extension”. Să presupunem că trebuie să adăugați o metodă de afișare la CustTable, de exemplu, o puteți numi MyCustTable_Extension.
Clasa trebuie să fie decorată cu ExtensionOf pentru a informa sistemul ce extindeți, astfel:
public final class MyCustTable_Extension
{
}
Acum puteți implementa metoda de afișare în această clasă, așa cum ați fi făcut direct pe tabel în versiunile anterioare ale Dynamics - „acest lucru” face referire chiar la tabel, astfel încât să puteți accesa câmpuri și alte metode.
De exemplu, o clasă cu o metodă de afișare simplă (și complet inutilă) care returnează doar numărul de cont al clientului ar putea arăta astfel:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Acum, pentru a adăuga metoda de afișare într-un formular (sau extensie de formular, dacă nu puteți edita formularul direct), trebuie să adăugați manual un câmp în formular și să vă asigurați că utilizați tipul corect (șir în acest exemplu).
Apoi, pe control, ați seta DataSource la CustTable (sau oricare ar fi numele sursei de date CustTable) și DataMethod la MyCustTable_Extension.displayAccountNum (asigurați-vă că includeți numele clasei, altfel compilatorul nu poate găsi metoda).
Si ai terminat :-)
Actualizare: nu mai este necesar să includeți numele clasei de extensie atunci când adăugați metoda de afișare într-un formular, dar la momentul inițial al publicării, așa era. Las informațiile aici în cazul în care unii cititori încă folosesc versiuni mai vechi.