Miklix

Přidejte metodu zobrazení nebo úprav prostřednictvím rozšíření v Dynamics 365

Vydáno: 16. února 2025 v 11:55:00 UTC

V tomto článku vysvětluji, jak pomocí rozšíření třídy přidat metodu zobrazení do tabulky a formuláře v Dynamics 365 for Operations, včetně příkladů kódu X++.


Tato stránka byla strojově přeložena z angličtiny, aby byla přístupná co největšímu počtu lidí. Strojový překlad bohužel ještě není dokonalá technologie, takže může dojít k chybám. Pokud si přejete, můžete si prohlédnout původní anglickou verzi zde:

Add Display or Edit Method via Extension in Dynamics 365

Zatímco plánování použití metod zobrazení nebo úprav v Dynamics je něco, co by vás mělo obecně přimět zvážit, zda byste možná nemohli navrhnout své řešení jiným způsobem, občas jsou tou nejlepší cestou.

V předchozích verzích Dynamics a Axapta bylo velmi snadné vytvářet metody zobrazení nebo úprav na tabulkách a formulářích, ale když jsem nedávno musel vytvořit svou první metodu úprav v Dynamics 365, zjistil jsem, že postup je poněkud odlišný.

Zjevně existuje několik platných přístupů, ale ten, který považuji za nejlepší (jak z hlediska intuitivity, tak z hlediska krásy kódu), je použití rozšíření třídy. Ano, pomocí rozšíření tříd můžete přidat metody k jiným typům prvků než jsou třídy – v tomto případě tabulka, ale funguje to i pro formuláře.

Nejprve vytvořte novou třídu. Můžete jej pojmenovat, jak chcete, ale z nějakého důvodu musí mít příponu „_Extension“. Řekněme, že potřebujete přidat metodu zobrazení do CustTable, můžete ji například pojmenovat MyCustTable_Extension.

Třída musí být ozdobena ExtensionOf, aby systém věděl, co rozšiřujete, například takto:

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

Nyní můžete v této třídě implementovat svou metodu zobrazení, jako byste to udělali přímo na stole v dřívějších verzích Dynamics – „toto“ dokonce odkazuje na tabulku, takže můžete přistupovat k polím a dalším metodám.

Například třída s jednoduchou (a zcela zbytečnou) metodou zobrazení, která pouze vrací číslo účtu zákazníka, by mohla vypadat takto:

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

        return this.AccountNum;
    }
}

Chcete-li nyní do formuláře přidat metodu zobrazení (nebo rozšíření formuláře, pokud formulář nemůžete upravit přímo), musíte do formuláře přidat pole ručně a ujistit se, že používáte správný typ (v tomto příkladu řetězec).

Pak byste na ovládacím prvku nastavili DataSource na CustTable (nebo jakýkoli název vašeho zdroje dat CustTable) a DataMethod na MyCustTable_Extension.displayAccountNum (nezapomeňte uvést název třídy, jinak kompilátor nemůže najít metodu).

A máte hotovo :-)

Aktualizace: Při přidávání metody zobrazení do formuláře již není nutné uvádět název třídy rozšíření, ale v původní době publikování tomu tak bylo. Informace zde nechávám pro případ, že by někteří čtenáři stále používali starší verze.

Sdílet na BlueskySdílejte na FacebookuSdílet na LinkedInSdílet na TumblrSdílet na XSdílet na LinkedInPřipnout na Pinterest

Mikkel Bang Christensen

O autorovi

Mikkel Bang Christensen
Mikkel je tvůrcem a majitelem webu miklix.com. Má více než 20 let zkušeností jako profesionální programátor/vývojář softwaru a v současné době pracuje na plný úvazek pro velkou evropskou IT společnost. Pokud zrovna nepíše blog, věnuje svůj volný čas široké škále zájmů, koníčků a aktivit, což se může do jisté míry odrážet v rozmanitosti témat na tomto webu.