Miklix

Pridajte metódu zobrazenia alebo úpravy prostredníctvom rozšírenia v Dynamics 365

Publikované: 16. februára 2025 o 11:56:04 UTC

V tomto článku vysvetľujem, ako použiť rozšírenie triedy na pridanie metódy zobrazenia do tabuľky a formulára v Dynamics 365 for Operations, vrátane príkladov kódu X++.


Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

Add Display or Edit Method via Extension in Dynamics 365

Zatiaľ čo plánovanie použitia metód zobrazenia alebo úprav v Dynamics je niečo, čo by vás malo vo všeobecnosti prinútiť zvážiť, či by ste možno nemohli navrhnúť svoje riešenie iným spôsobom, príležitostne sú tou najlepšou cestou.

V predchádzajúcich verziách Dynamics a Axapta bolo veľmi jednoduché vytvárať metódy zobrazenia alebo úpravy na tabuľkách a formulároch, ale keď som nedávno musel urobiť svoju prvú metódu úprav v Dynamics 365, zistil som, že postup na to je trochu odlišný.

Zjavne existuje niekoľko platných prístupov, ale ten, ktorý považujem za najlepší (z hľadiska intuitívnosti aj krásneho kódu), je použiť rozšírenie triedy. Áno, rozšírenia triedy môžete použiť na pridanie metód do iných typov prvkov ako tried – v tomto prípade tabuľky, ale funguje to aj pre formuláre.

Najprv vytvorte novú triedu. Môžete ho pomenovať akokoľvek chcete, no z nejakého dôvodu musí mať príponu „_Extension“. Povedzme, že potrebujete pridať metódu zobrazenia do CustTable, môžete ju napríklad pomenovať MyCustTable_Extension.

Trieda musí byť ozdobená ExtensionOf, aby systém vedel, čo rozširujete, napríklad takto:

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

Teraz môžete jednoducho implementovať svoju metódu zobrazenia v tejto triede, ako by ste to urobili priamo na tabuľke v starších verziách Dynamics – „toto“ dokonca odkazuje na tabuľku, takže máte prístup k poliam a iným metódam.

Napríklad trieda s jednoduchou (a úplne zbytočnou) metódou zobrazenia, ktorá len vráti číslo účtu zákazníka, by mohla vyzerať takto:

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

        return this.AccountNum;
    }
}

Teraz, ak chcete pridať metódu zobrazenia do formulára (alebo rozšírenia formulára, ak nemôžete upraviť formulár priamo), musíte do formulára manuálne pridať pole a uistite sa, že používate správny typ (v tomto príklade reťazec).

Potom na ovládacom prvku nastavíte DataSource na CustTable (alebo akýkoľvek názov vášho zdroja údajov CustTable) a DataMethod na MyCustTable_Extension.displayAccountNum (nezabudnite uviesť názov triedy, inak kompilátor nemôže nájsť metódu).

A hotovo :-)

Aktualizácia: Pri pridávaní metódy zobrazenia do formulára už nie je potrebné uvádzať názov triedy rozšírenia, ale v pôvodnom čase publikovania to tak bolo. Informácie tu ponechávam pre prípad, že niektorí čitatelia stále používajú staršie verzie.

Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Bang Christensen

O autorovi

Mikkel Bang Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.